我想模拟一个ServiceContract.问题是Moq(和Castle Dynamic-Proxy)将属性从接口复制到Wcf不喜欢的动态代理.Wcf说:ServiceContractAttribute只应在接口或实现上定义,而不是两者都定义.
异常是:InvalidOperationException - Castle.Proxies.IWorkOrderRequestServiceProxy类型的服务类都定义了ServiceContract并从IWorkOrderRequestService类型继承ServiceContract.合同继承只能在接口类型中使用.如果类使用ServiceContractAttribute标记,则它必须是具有ServiceContractAttribute的层次结构中的唯一类型.考虑将类型IWorkOrderRequestService上的ServiceContractAttribute移动到IWorkOrderRequestService实现的单独接口
lar*_*rsw 22
刚遇到同样的问题 - 所以+1解决方案!:-)
更新:http://code.google.com/p/moq/source/browse/trunk/Source/Proxy/CastleProxyFactory.cs包含对名为AttributesToAvoidReplicating的属性(集合)的引用,看起来像是一个开始查看的地方Moq源代码.
更新#2:诅咒吧!
加:
Castle.DynamicProxy.Generators.AttributesToAvoidReplicating.Add(typeof运算(ServiceContractAttribute的));
在你连接内核中的任何内容之前.