【问题标题】:C# attribute collection [duplicate]C#属性集合[重复]
【发布时间】:2013-07-08 11:19:18
【问题描述】:

我有一定的内置属性集合(如 System.Runtime.Serialization.SerializableAttribute),我想将其应用于特定的类集合

是否可以将这些属性合并为一个?我不想将它们全部显式应用到我的所有类(属性集合在开发过程中可能会发生变化)

我想要的是一个属性,例如

public class MyClassAttribute: System.Attribute { ... }

我可以很容易地应用到我的课程中

[MyClass]
public class SampleClass { ... }

这将导致 SampleClass 具有 Serializable 属性和其他属性。谢谢

【问题讨论】:

标签: c# .net attributes


【解决方案1】:

不,基本上不是。实际上,[Serializable] 特别值得注意,因为它在编译器中具有不同的处理方式 - 它不是作为属性编写的,而是作为原始标志(如果您问“是否具有[Serializable] 属性” - 它根据类型检查标志,并返回您期望看到的内容,即使这不是事实)。

【讨论】:

    【解决方案2】:

    我认为不可能开箱即用,但您可以使用 Mono.Cecil 在构建后步骤中修改程序集中的类型,删除您的集合属性并添加其他属性。

    【讨论】:

      【解决方案3】:

      有趣的问题。我认为很多内置属性都是密封的,所以这可能是不可能的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-05-25
        • 2012-06-23
        • 1970-01-01
        • 2021-09-18
        • 2018-02-22
        • 1970-01-01
        • 2013-05-09
        • 1970-01-01
        相关资源
        最近更新 更多