默认属性列表应该来自c#.net中的我的类定义

时间:2011-01-14 10:41:03

标签: .net attributes propertydescriptor

我有一个员工班:

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添加到'Employe`为

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 :(得分:0)

无法为此生成编译时错误。但是,您可以在单元测试或#debug构建中使用反射执行某些操作 - 只需遍历属性,然后检查Attribute.IsDefined(property, typeof(CustomAttributes))