【发布时间】:2015-12-20 12:43:57
【问题描述】:
我已经创建了合同
[ServiceContract]
public interface ITestService
{
[OperationContract]
[NetDataContract]
void PassGuid(Guid id);
[OperationContract]
[NetDataContract]
void PassInt(int id);
}
属性NetDataContractAttribute 描述here。
当我打电话给PassGuid 时出现错误:
附加信息:格式化程序在尝试时抛出异常 反序列化消息:尝试 反序列化参数http://tempuri.org/:id。内部异常 消息是'XML'元素''http://tempuri.org/:id'不包含 预期属性 'http://schemas.microsoft.com/2003/10/Serialization/:Type'。这 反序列化器不知道要反序列化哪种类型。查看 被序列化的类型与被序列化的类型具有相同的合同 反序列化。有关详细信息,请参阅 InnerException。
但PassInt 可以正常调用。
完整源代码here.
编辑: 这个问题不是关于发送 guid 的效率,比如this one,主要是关于使用 NetDataContractSerializer。
【问题讨论】:
-
我已经用change 更新了你的github。
NetDataContractAttribute类可以放在共享类库中,在客户端和服务器项目中都可以使用。
标签: c# .net wcf serialization netdatacontractserializer