Допустим, у нас есть ситуация, когда у нас есть два класса, ClassA
и ClassB
, и у них обоих есть метод DoSomething()
. ClassB
содержит ClassA
в качестве поля, и когда вызывается ClassB.DoSomething()
, он делегирует вызов ClassA.DoSomething()
. Кроме того, ClassA.DoSomething()
имеет некоторый атрибут. Итак, у нас есть что-то вроде
class ClassA {
[SomeAttribute]
int DoSomething() { return 0; }
}
class ClassB {
public ClassA CA { get; }
int DoSomething() { return CA.DoSomething(); }
}
У меня вопрос: есть ли способ применить атрибуты, существующие на ClassA.DoSomething()
к ClassB.DoSomething()
, не повторяя этот код? Что если ClassA.DoSomething()
имеет несколько атрибутов? Есть ли какой-нибудь атрибут, который может выглядеть как [ApplyAttributes(typeof(ClassA), "DoSomething")]
?
Я не смотрю на динамическое применение атрибутов во время выполнения, это может произойти во время компиляции.
Это для решения Silverlight, поэтому некоторые методы отражения, такие как TypeDescriptors, для меня недоступны.