我有一个定义为System.AttributeUsage(AttributeTargets.Property).的自定义属性当开发人员将属性添加到不是类的属性时,我希望编译器抛出编译错误。有没有办法做到这一点?
发布于 2011-10-29 03:33:50
不,没有这样的东西可用。
但是,如果您在自己的代码中担心这一点,我建议您编写一些测试,这些测试遍历所有程序集中所有类型中的所有属性,并检查是否正确应用了该属性。
编译时检查在可行的情况下是最好的,但用测试验证总比没有好:)
发布于 2011-10-29 05:12:37
不要抱太大希望,但你可以使用微软的Code Contracts或FxCop之类的东西来强制定制编译器错误:
代码契约:
http://msdn.microsoft.com/en-us/devlabs/dd491992.aspx
FxCop:
http://msdn.microsoft.com/en-us/library/bb429476(v=vs.80).aspx
你也可以看看Spec#:
http://research.microsoft.com/en-us/projects/specsharp/
https://stackoverflow.com/questions/7933815
复制相似问题