9

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

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

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

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

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

[MyClass]
public class SampleClass { ... }

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

4

3 回答 3

8

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

于 2013-07-08T11:27:12.890 回答
0

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

于 2013-07-08T11:33:56.180 回答
0

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

于 2013-07-08T11:26:53.670 回答