C#属性用法:仅允许具有特定数据类型的属性上的属性

时间:2011-12-20 10:51:46

标签: c# custom-attributes

我为属性创建了一些属性。现在我想将这些属性限制为具有特定数据类型的属性?这个想法是,如果将其分配给不同的类型,则会抛出编译器错误。这有可能吗?

如果没有,那么我想我必须在运行时检查它。

2 个答案:

答案 0 :(得分:7)

您可以编写自定义FxCop/ Code Analysis规则来检查此内容。

FxCop以“Code Analyis”的名称集成在VS 2010中,您可以更改项目属性中的规则集。

答案 1 :(得分:4)

不,这是不可能的。

一个好的解决方法是构建一个单元测试,它将遍历所有类,它们的属性并检查这个额外的适用性标准。它不像编译时错误消息那样舒服,但是可以达到目的。如果您拥有某种构建自动化基础架构,那么质量保证级别在实践中将是相同的。