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