C#属性集合

10
我有一些内置属性(例如System.Runtime.Serialization.SerializableAttribute),我想将其应用于一些特定的类集合。
是否可以将这些属性合并为一个?我不想明确地将它们全部应用于所有类(属性集合可能会在开发过程中更改)。
我希望得到一个属性,例如:
public class MyClassAttribute: System.Attribute { ... }

which I could apply easily to my classes

[MyClass]
public class SampleClass { ... }

并且这会导致SampleClass具有Serializable属性以及其他属性。谢谢

也许 PostSharp 是一个不错的选择? - Steve B
3个回答

9
不是的,基本上不是。实际上,[Serializable] 特别值得注意,因为编译器对其有不同的处理方式 - 它不是作为一个属性写入,而是作为一个原始标志(如果你问“它是否具有[Serializable]属性”,运行时会检查类型的标志,并返回你期望看到的结果,即使这不是真实情况) 。

0

我认为这不可能直接实现,但你可以在构建后使用Mono.Cecil修改程序集中的类型,删除你的集合属性并添加其他属性。


0

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接