我有一个参考System.ComponentModel.DataAnnotations
的实体的类库。
我有单独的数据库访问类库,但没有引用System.ComponentModel.DataAnnotations
。
我有一个名为“Customer
的课程,使用的RequiredAttribute
是System.ComponentModel.DataAnnotations
的一部分。数据访问库正在编译而没有错误。
我修改了Customer
类并实现了IValidatableObject
。 IValidatableObject
也是System.ComponentModel.DataAnnotations
的一部分。
编译数据访问库时,需要引用System.ComponentModel.DataAnnotations
。为什么DataAnnotations
不需要引用RequiredAttribute
?
答案 0 :(得分:0)
大多数自定义属性(包括RequiredAttribute
)对编译没有任何影响。而对象(它自己的类型,基类和任何接口)可能的类型会影响方法过载选择等。
因此,在编译使用Customer
类的程序集时,编译器需要实际知道所有这些类型。