3

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

但是,当我尝试此操作时出现错误...错误消息是:

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

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

var generator = new ProxyGenerator();

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

问题一定是ChannelFactory生成的服务代理是在运行时生成的,但是有什么办法可以解决这个问题呢?

4

1 回答 1

0

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

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

于 2010-07-20T14:11:39.297 回答