我想嘲笑一个ServiceContract。问题是,Moq (和)将属性从接口复制到Wcf不喜欢的动态代理。Wcf说: ServiceContractAttribute只应该定义在接口或实现上,而不是两者都定义。
例外是: InvalidOperationException -类型Castle.Proxies.IWorkOrderRequestServiceProxy的服务类既定义ServiceContract,又从IWorkOrderRequestService类型继承ServiceContract。合同继承只能在接口类型之间使用。如果一个类被标记为ServiceContractAttribute,那么它必须是使用ServiceContractAttribute的层次结构中的唯一类型。考虑将ServiceContractAttribute在IWorkOrderRequestService类型上移动到IWorkOrderRequestService类型实现的独立接口。
发布于 2010-05-18 08:43:10
只是遇到了同样的问题--所以+1的解决方案!:-)
Update:http://code.google.com/p/moq/source/browse/trunk/Source/Proxy/CastleProxyFactory.cs包含对一个名为AttributesToAvoidReplicating的属性(集合)的引用,它看起来像是在Moq源代码中开始查找的地方。
更新2:搞定它!
添加:
Castle.DynamicProxy.Generators.AttributesToAvoidReplicating.Add(typeof(ServiceContractAttribute));
在你连接内核中的任何东西之前。
https://stackoverflow.com/questions/2855535
复制相似问题