2010-07-20 77 views
3

我正在使用ChannelFactory在运行时为WCF服务创建代理。我想使用DynamicProxy Castle项目在WCF代理之上创建一个动态代理,以便拦截呼叫并进行模拟。如何为ChannelFactory生成的WCF代理创建DynamicProxy <T>?

当我尝试这个,虽然我得到一个错误......错误消息是:

“这”类型不能是接口本身。

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

var generator = new ProxyGenerator(); 

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

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

回答

0

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

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

+0

这似乎没有帮助我的问题。我错过了什么吗?这看起来像是服务端,而不是客户端。 – 2010-07-20 14:16:07

+0

它适用于.. – 2010-07-20 14:20:04

+0

你能举一个例子来展示原始问题的解决方案吗? – 2012-05-01 15:15:34

相关问题