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

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

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

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

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

不,这是不可能的。

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