【发布时间】:2011-02-27 19:39:21
【问题描述】:
借助 .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。
所以,我的问题是:
这实际上可能与动态运行时有关吗?看起来动态实现方法和属性之类的东西相当容易,但我还没有找到任何关于动态实现接口和转换它们的文档。
假设这是可能的,它可能有多困难? (你可以假设我是一个体面的程序员,在反射等方面有丰富的经验,但对动态框架不熟悉。)
是否有任何资源可以帮助我指出实施此类事情的正确方向?或者甚至可以作为起点的此类事情已经完成的示例?
【问题讨论】:
-
实现接口方法的代码从哪里来?
标签: c# .net dynamic .net-4.0 c#-4.0