2010-06-30 4 views
8

Я создал частичный класс для моего генерируемого автоматически xsd класса. Проблема заключается в отладке этого частичного класса. Точка останова не распознается или компилятор не разбивается на контрольные точки, заданные в частичном классе.Отладка частичного класса

// Autogenerated class by xsd.exe 

public partial class Class1 
{ 
    private Class1Brand[] brandField; 

    private string Class1guidField; 

    ..... 
} 

// Debug Part - probably in a different file 
public partial class Class1 
{ 
    public static Validity setValidity(Validity validity) 
    { 
    // ********* BREAKPOINT IS SET ON THE NEXT LINE *********** 
     validity.LastVerified = DateTime.Now; 

     //certificates are only updated within 14 days before expiry date 
     TimeSpan tsCheck = validity.NotAfter - validity.LastVerified; 
     if (tsCheck.Days <= 14) 
     { 
      DateTime dtNotBefore = validity.NotAfter.AddDays(conf.validityPeriod()); 
      if (validity.NotAfter > DateTime.Now) 
      { 
       dtNotBefore = validity.NotAfter; 
      } 
      else 
      { 
       dtNotBefore = DateTime.Now; 
      } 
      validity.NotBefore = dtNotBefore; 
      validity.NotAfter = dtNotBefore.AddDays(conf.validityPeriod()); 
     } 
     return validity; 
    } 

}

ответ

22

XSD украшает все созданные классы с DebuggerStepThroughAttribute, который предотвращает отладчик от остановки в методе/класса, помеченной этим атрибутом.

Чтобы решить эту проблему:

  • Либо поиск и замена всех вхождений DebuggerStepThrough атрибута
  • Или, в Visual Studio, перейдите Tools - Options ..., выделите Debugging/General и снимите флажок рядом с Включить только мой код
+0

+1 I был готов ответить на это, но не смог вспомнить имя атрибута lol –

+1

Обратите внимание, что если вы внесете какие-либо изменения в файлы с кодом, они будут потеряны, если файл будет восстановлен. –

+0

Антон, ты сделал мой день большое спасибо – Bart