2つのクラス(ClassA
とClassB
)があり、両方ともメソッドDoSomething()
を持っているとします。 ClassB
にはフィールドとしてClassA
が含まれ、ClassB.DoSomething()
が呼び出されると、ClassA.DoSomething()
への呼び出しが委任されます。また、ClassA.DoSomething()
には何らかの属性があります。だから我々はC#メンバーに別のクラスの別のメンバーの属性を付けることはできますか?
class ClassA {
[SomeAttribute]
int DoSomething() { return 0; }
}
class ClassB {
public ClassA CA { get; }
int DoSomething() { return CA.DoSomething(); }
}
私の質問があるようなもの、そのコードを繰り返すことなくClassB.DoSomething()
へClassA.DoSomething()
上に存在する属性を適用するいくつかの方法がありますか? ClassA.DoSomething()
に複数の属性がある場合はどうなりますか? [ApplyAttributes(typeof(ClassA), "DoSomething")]
のような属性がありますか?
私は実行時に属性を動的に適用することを検討していませんが、これはすべてコンパイル時に発生する可能性があります。
これはSilverlightソリューション用ですので、TypeDescriptorsなどの特定のリフレクションテクニックは利用できません。
classAとclassBの間には何らかの関係はありますか? –
ClassBからClassA –