AttributeUsage(AttributeTargets.Property) - 有没有办法为Property Type指定黑/白名单?

时间:2011-10-28 19:19:22

标签: .net custom-attributes

我有一个定义为System.AttributeUsage(AttributeTargets.Property)的自定义属性。 我希望编译器在开发人员将属性添加到非类的属性时抛出编译错误。有没有办法做到这一点?

2 个答案:

答案 0 :(得分:0)

不,没有那样可用。

但是,如果您在自己的代码中担心这一点,我建议您编写一些测试,这些测试遍历所有程序集中所有类型的所有属性,并检查该属性是否已正确应用。

编译时检查最好是可行的,但通过测试验证总比没有好。)

答案 1 :(得分:0)

不要抱有希望,但您可以使用Microsoft的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/