我有两个WCF服务,ServiceOne
和ServiceTwo
。
在ServiceOne
中,我已经像这样定义了MyEntity
:
[DataContract]
public class MyEntity
{
... // Other members of different types
[DataMember]
public Microsoft.Xrm.Sdk.EntityReference AccountId { ... } // Notice the namespace
}
ServiceTwo
引用ServiceOne
以及Microsoft.Xrm.Sdk
,但当我尝试在ServiceTwo
中执行以下操作时:
MyEntity myObject = new MyEntity
{
AccountId = new Microsoft.Xrm.Sdk.EntityReference("account", someGuid),
};
我收到错误Cannot implicitly convert type 'Microsoft.Xrm.Sdk.EntityReference' to 'ServiceTwo.ServiceOneReference.EntityReference'
不幸的是,我无法定义自己的EntityReference
子类,因为它是密封的。
有没有办法可以保留EntityReference
的原始名称空间?我做错了什么?
答案 0 :(得分:0)
在服务二中,您尝试创建的MyEntity对象的命名空间是什么?它可能是ServiceTwo.ServiceOneReference.MyEntity吗?
在我看来,您已经使用svcutil.ex来为服务二项目中的服务生成代理服务器。 Svcutil很可能会创建服务接口返回或使用的任何类的本地副本,但是名称空间全部基于服务中的一个引用。
所以希望你可以将AccountId属性设置为ServiceTwo.ServiceOneReference.EntityReference的新实例....如果你的服务中没有这样的东西,那么EntityReference类可能不是可序列化的。