Список атрибутов по умолчанию должен прийти к моему определению класса в c # .net - PullRequest
0 голосов
/ 14 января 2011

У меня есть класс сотрудника:

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; }
}

Я хочу проверить, должна ли коллекция атрибутов присутствовать для каждого определения свойства. Если я добавлю новое свойство Age к «Сотруднику» как

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;}
}

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

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

1 Ответ

0 голосов
/ 14 января 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...