【问题标题】:Mocking a Wcf ServiceContract模拟 Wcf ServiceContract
【发布时间】:2011-02-20 18:47:16
【问题描述】:

我想模拟一个 ServiceContract。问题是 Moq(和 Castle Dynamic-Proxy)将属性从接口复制到 Wcf 不喜欢的动态代理。 Wcf 说:ServiceContractAttribute 应该只在接口或实现上定义,而不是同时定义。

异常是:InvalidOperationException - Castle.Proxies.IWorkOrderRequestServiceProxy 类型的服务类既定义了 ServiceContract,又从 IWorkOrderRequestService 类型继承了 ServiceContract。契约继承只能在接口类型之间使用。如果一个类用 ServiceContractAttribute 标记,它必须是层次结构中唯一具有 ServiceContractAttribute 的类型。考虑将 IWorkOrderRequestService 类型上的 ServiceContractAttribute 移动到 IWorkOrderRequestService 类型实现的单独接口

【问题讨论】:

    标签: wcf moq


    【解决方案1】:

    刚刚遇到同样的问题 - 所以 +1 以获得解决方案! :-)

    更新:http://code.google.com/p/moq/source/browse/trunk/Source/Proxy/CastleProxyFactory.cs 包含对名为 AttributesToAvoidReplicating 的属性(集合)的引用,看起来像是开始查看 Moq 源代码的地方。

    更新 #2:成功了!

    添加:

    Castle.DynamicProxy.Generators.AttributesToAvoidReplicating.Add(typeof(ServiceContractAttribute));

    在你连接内核中的任何东西之前。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多