【问题标题】:C# attribute usage: only allow attributes on a property with specific data type [duplicate]C#属性用法:仅允许具有特定数据类型的属性上的属性[重复]
【发布时间】:2011-12-20 10:51:46
【问题描述】:

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

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

【问题讨论】:

标签: c# custom-attributes


【解决方案1】:

您可以编写自定义 FxCop/ Code Analysis 规则来检查这一点。

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

【讨论】:

  • 谢谢,这两个答案都是好的和可能的解决方案。我可能会选择 CA,因为这就是我们在这里使用的。我知道这可能是一件坏事,但我们的团队没有使用单元测试!
  • @Mel FxCop / 代码分析绝对是一个不错的选择。
【解决方案2】:

不,这是不可能的。

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

【讨论】:

    猜你喜欢
    • 2012-01-13
    • 1970-01-01
    • 2011-01-03
    • 2020-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-18
    • 1970-01-01
    相关资源
    最近更新 更多