【问题标题】:How can I create a DynamicProxy for a WCF proxy that is generated by ChannelFactory<T>?如何为 ChannelFactory<T> 生成的 WCF 代理创建 DynamicProxy?
【发布时间】:2011-03-18 10:56:24
【问题描述】:

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

我在尝试此操作时遇到错误...错误消息是:

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

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

var generator = new ProxyGenerator();

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

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

【问题讨论】:

    标签: .net-4.0 castle-dynamicproxy


    【解决方案1】:

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

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

    【讨论】:

    • 这似乎对我的问题没有帮助。我错过了什么吗?这看起来像是服务端,而不是客户端。
    • 你能举个例子说明原始问题的解决方案吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-19
    相关资源
    最近更新 更多