Динамическая реализация интерфейса в .NET 4.0 (C #)
Похоже, что с новыми динамическими возможностями в .NET 4.0 должна быть возможность динамически реализовать интерфейс, например, дано:
public interface IFoo
{
string Bar(int baz);
}
public class Foo : IFoo
{
public string Bar(int baz) { return baz.ToString(); }
}
public class Proxy : IDynamicMetaObjectProvider
{
private readonly object target;
public Proxy(object target) { this.target = target; }
// something clever goes here
}
Тогда я надеюсь, что есть какой-то способ сделать возможным написать:
dynamic proxy = new Proxy(new Foo());
IFoo fooProxy = (IFoo)proxy; // because the target object implements it
string bar = fooProxy.Bar(123); // delegates through to the target implementation
Но, пока, я не уверен, что заменить// something clever goes here
с.
Итак, мои вопросы:
Это на самом деле возможно сделать с динамическим временем выполнения? Похоже, что динамически реализовать такие вещи, как методы и свойства, довольно легко, но я не нашел никакой документации о динамически реализуемых интерфейсах и преобразованиях к ним.
Предполагая, что это возможно, насколько сложно это может быть? (Вы можете предположить, что я приличный программист с большим опытом таких вещей, как рефлексия, но новичок в динамической среде.)
Есть ли какие-либо ресурсы, которые помогли бы указать мне правильное направление для реализации чего-то подобного? Или даже образцы, где такие вещи уже сделаны, которые я могу использовать в качестве отправной точки?