У меня есть некоторый интерфейс и класс, реализующий этот интерфейс, скажем:
interface IMyInterface
{
void Func1();
void Func2();
}
class Concrete : IMyInterface
{
public virtual void Func1() { //do something }
public virtual void Func2() { //do something }
}
Теперь я хочу создать класс, который украшает каждый из методов конкретного класса некоторой определенной логикой, которая будет выполнятьсяв непроизводственной среде, до и после звонка.
class Decorator : Concrete
{
public override void Func1() { Pre(); base.Func1; Post(); }
public override void Func2() { Pre(); base.Func2; Post(); }
}
У меня вопрос, есть ли более простой способ автоматически сгенерировать такой класс, кроме использования отражения в интерфейсе и создания текстового файла с расширением cs?