9

クラスの特定のコレクションに適用したい組み込み属性 (System.Runtime.Serialization.SerializableAttribute など) の特定のコレクションがあります。

それらの属性を1つに統合することは可能ですか? それらすべてをすべてのクラスに明示的に適用したくありません (属性コレクションは開発プロセス中に変更される可能性があります)。

私が欲しいのは、たとえば1つの属性です

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

クラスに簡単に適用できます

[MyClass]
public class SampleClass { ... }

これにより、 SampleClass に Serializable 属性などが含まれます。ありがとう

4

3 に答える 3

8

いいえ、そうではありません。実際に[Serializable]は、コンパイラでの扱いが異なるため、特に注目に値します-属性としてではなく、生のフラグとして書き込まれます(「[Serializable]属性がありますか」と尋ねると、ランタイムは単に嘘をつきます-フラグをチェックしますたとえそれが真実でなくても、あなたが期待するものを返します)。

于 2013-07-08T11:27:12.890 に答える
0

すぐに使用できるとは思いませんが、Mono.Cecilを使用して、ビルド後の手順でアセンブリの型を変更し、コレクション属性を削除して他の属性を追加することができます。

于 2013-07-08T11:26:53.670 に答える