2013-07-08 15 views
10

?すべてのクラスに明示的にすべてのクラスを適用する必要はありません(アトリビュートコレクションは開発プロセス中に変更される可能性があります)。C#の属性コレクション

私は私のクラス

[MyClass] 
public class SampleClass { ... } 

とそれに簡単に適用できる

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

はSerializable属性と他の人を持っているSampleClassを引き起こします。ありがとう

+0

おそらく[PostSharp](http://www.postsharp.net/)の良い候補だろうか? –

答えて

0

私はそれが可能だとは思わないが、Mono.Cecilを使用して、ビルド後のステップでアセンブリのタイプを変更し、コレクション属性を削除し、他のものを追加することができます。

8

いいえ、基本的にはありません。実際には、[Serializable]、特にです。これはコンパイラでの扱いが異なるためです(属性として書かれていませんが、生のフラグとして書かれています)。 "[Serializable]属性を持っていますか?タイプに対してフラグをチェックし、を期待しているかどうかを返します。これは真実ではありませんが)。

0

興味深い質問です。私は組み込み属性の多くが封印されているので、これは不可能かもしれないと思います。