2011-01-14 1 views
0

У меня есть класс сотрудника:по умолчанию должен прийти к моему определению класса в C# .NET

public class Employee 
{ 

     public string Name { get; set; } 
     public Int32 Salary { get; set; } 
     public DateTime DateOfBirth { get; set; } 
} 

и я создал пользовательский атрибут CustomeAttribute в

public class CustomAttributes : Attribute 
{ 

     public int Sequence {set;get;} 
     public int Length { set; get; } 

} 

Я использую CustomAttribute, как атрибут в Employee, как

public class Employee 
{ 

    public string Name { get; set; } 
    public Int32 Salary { get; set; } 
    public DateTime DateOfBirth { get; set; } 
} 

public class Employee 
{ 

    [CustomAttributes(Sequence=1,Length=10)] 
    public string Name { get; set; } 
    [CustomAttributes(Sequence = 2, Length= 6)] 
    public Int32 Salary { get; set; } 
    [CustomAttributes(Sequence =3, Length = 8)] 
    public DateTime DateOfBirth { get; set; } 
} 

Я хочу, чтобы проверить attri но для каждого определения свойства должно быть установлено собрание. Если добавить новое свойство Age в'Employee` в

public class Employee 
{ 
    [CustomAttributes(Sequence=1,Length=10)] 
    public string Name { get; set; } 
    [CustomAttributes(Sequence = 2, Length= 6)] 
    public Int32 Salary { get; set; } 
    [CustomAttributes(Sequence =3, Length = 8)] 
    public DateTime DateOfBirth { get; set; } 

    public int Age {get;set;} 
} 

я должен получить ошибку компиляции времени, как атрибуты отсутствуют. Который обеспечит запись Значения атрибутов для каждого из свойств этого класса, а также для класса, который является из той же сборки.

Я должен получить ошибку времени компиляции для свойства без значений атрибута.

ответ

0

Невозможно создать для этого ошибку времени компиляции. Тем не менее, вы можете что-то сделать с отражением в ваших модульных тестах или в блоке #debug - просто перебирайте свойства, проверяя Attribute.IsDefined(property, typeof(CustomAttributes))

+0

Хорошо спасибо ... это означает, что мы не можем проверить его во время разработки. – pramodchoudhari

 Смежные вопросы

  • Нет связанных вопросов^_^