Nehmen wir an, wir haben eine Situation, in der wir zwei Klassen haben, ClassA
und ClassB
, und diese beide haben die Methode DoSomething()
. ClassB
enthält ein ClassA
als ein Feld, und wenn ClassB.DoSomething()
aufgerufen wird, delegiert es den Aufruf an ClassA.DoSomething()
. Außerdem hat ClassA.DoSomething()
einige Attribute darauf. So haben wir so etwas wieKönnen Sie einem C# -Mitglied die Attribute eines anderen Mitglieds in einer anderen Klasse geben?
class ClassA {
[SomeAttribute]
int DoSomething() { return 0; }
}
class ClassB {
public ClassA CA { get; }
int DoSomething() { return CA.DoSomething(); }
}
Meine Frage ist, gibt es eine Möglichkeit, die Attribute der Anwendung, die auf ClassB.DoSomething()
auf ClassA.DoSomething()
existieren, ohne dass Code zu wiederholen? Was passiert, wenn ClassA.DoSomething()
mehrere Attribute hat? Gibt es ein Attribut, das wie folgt aussehen könnte: [ApplyAttributes(typeof(ClassA), "DoSomething")]
?
Ich bin nicht auf der Suche nach Attributen dynamisch zur Laufzeit, das könnte alles zur Kompilierzeit passieren.
Dies ist für eine Silverlight-Lösung, so dass bestimmte Reflexionstechniken wie TypeDescriptors für mich nicht verfügbar sind.
Gibt es eine Beziehung zwischen KlasseA und KlasseB? –
Nur die Zuordnung von ClassB zu ClassA –