Список атрибутов по умолчанию должен прийти к моему определению класса в 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; }
}

Я хочу проверить атрибут коллекции должен быть там для каждого определения свойства. Если я добавлю новое свойство 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 ответ

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

Другие вопросы по тегам