У меня есть некоторые классы, которые не реализуют определенный интерфейс, но структурно соответствуют этому интерфейсу.
interface IFoo {
void method();
}
class Bar { // does not implement IFoo
public void method() {...}
}
Теперь я мог бы написать оболочку вокруг этих классов, которые просто делегируют завернутый класс
class BarWrapper : IFoo {
Bar bar = new Bar();
public void method()
{
bar.method();
}
}
Но это много утомительной работы. Могут ли эти классы-оболочки каким-то образом генерироваться автоматически? Что-то вроде:
IFoo foo = CreateWrapper<IFoo>(new Bar());
Я уверен, что вы можете сделать это с помощью Reflection.Emit, но я никогда не использовал это, и на первый взгляд это выглядит не очень легко.
Есть ли более простой способ или есть библиотека, которая уже реализует это?