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

Mel*_*Mel 5 c# custom-attributes

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

如果没有,那么我想我将不得不在运行时检查它.

Bro*_*ass 7

您可以编写自定义FxCop /代码分析规则来检查这一点.

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


Ond*_*cny 5

不,这是不可能的。

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