Con las nuevas capacidades dinámicas en .NET 4.0, parece que debería ser posible implementar dinámicamente una interfaz, p. da:Implementación dinámica de una interfaz en .NET 4.0 (C#)
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
}
Entonces espero que haya alguna manera para que sea posible escribir:
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
Pero, hasta ahora, estoy seguro de lo que para reemplazar // something clever goes here
con.
Por lo tanto, mis preguntas son:
Es esta realidad es posible que ver con el tiempo de ejecución dinámico? Parece que la implementación dinámica de cosas como métodos y propiedades es bastante fácil, pero no he encontrado ninguna documentación sobre la implementación dinámica de interfaces y conversiones.
Suponiendo que esto sea posible, ¿qué tan difícil es? (Puede suponer que soy un programador decente con mucha experiencia en cosas como la reflexión, pero nuevo en el marco dinámico.)
¿Hay algún recurso que me ayude a orientarme en la dirección correcta para implementar algo como ¿esta? ¿O incluso muestras donde ya se ha hecho este tipo de cosas que puedo usar como punto de partida?
¿De dónde vendrá el código que implementa los métodos de interfaz? –