如何为ChannelFactory <t>?</t>生成的WCF代理创建DynamicProxy

时间:2010-07-20 13:34:45

标签: .net-4.0 castle-dynamicproxy

我正在使用ChannelFactory在运行时为WCF服务创建代理。我想使用DynamicProxy Castle项目在WCF代理之上创建动态代理,以便我可以拦截调用并进行模拟。

我尝试这个时遇到错误...错误信息是:

  

'this'类型不能是接口本身。

我的代码是这样的(其中T是服务合同接口):

var generator = new ProxyGenerator();

return (T)generator.CreateInterfaceProxyWithTarget(typeof(T), channel, 
    new[] { new ImpersonationInterceptor() } );

问题必须与ChannelFactory生成的服务代理是在运行时生成的事实有关,但有没有解决这个问题的方法?

1 个答案:

答案 0 :(得分:0)

是 - 有 - 使用WCF Facility,它正在用Castle的DynamicProxy替换WCF代理。

这里的问题是,您正在尝试在代理之上构建代理,并且远程代理具有一些......特定的行为,其结果是您得到的错误。