我正在使用ChannelFactory在运行时为WCF服务创建代理。我想使用DynamicProxy Castle项目在WCF代理之上创建动态代理,以便我可以拦截调用并进行模拟。
我尝试这个时遇到错误...错误信息是:
'this'类型不能是接口本身。
我的代码是这样的(其中T是服务合同接口):
var generator = new ProxyGenerator();
return (T)generator.CreateInterfaceProxyWithTarget(typeof(T), channel,
new[] { new ImpersonationInterceptor() } );
问题必须与ChannelFactory生成的服务代理是在运行时生成的事实有关,但有没有解决这个问题的方法?
答案 0 :(得分:0)
是 - 有 - 使用WCF Facility,它正在用Castle的DynamicProxy替换WCF代理。
这里的问题是,您正在尝试在代理之上构建代理,并且远程代理具有一些......特定的行为,其结果是您得到的错误。