词典<;struct,int>;没有正确序列化
本文关键字:序列化 int lt struct 词典 gt | 更新日期: 2023-09-27 17:59:31
我有一个WCF服务,我尝试从客户端向服务器发送Dictionary<CustomStruct, int>
。我的WCF服务使用默认的BasicHttpBinding。
当我将Dictionary发送到服务器时,不会引发任何错误。但当我试图循环浏览我的字典时,它是空的。
奇怪的是Dictionary<string, string>
真的有效?!
有人知道为什么我的Dictionary<CustomStruct, int>
在穿过电线后是空的,以及Dictionary<string, string>
为什么工作吗。
[编辑]以下是我的结构:
[DataContract]
public struct CustomStruct : IEquatable<CustomStruct>
{
[DataMember]
private string _prop;
public string Prop { get { return _prop; } }
public override int GetHashCode()
{
return Prop.GetHashCode();
}
public static bool operator ==(CustomStruct left, CustomStruct right)
{
...
}
public static bool operator !=(CustomStruct left, CustomStruct right)
{
...
}
public override bool Equals(object obj)
{
...
}
}
这里有一个工作示例,可以执行您想要的
http://rocksolidknowledge.blob.core.windows.net/demos/CustomStructSerialization.zip
不幸的是,从你迄今为止提供的代码来看,我可以;我不知道出了什么问题-猜测你在客户端和服务的CustomStruct上有不同的名称空间,因此序列化无法正常工作,但如果没有更全面地看到生成的代码和自定义结构,我无法告诉
试着看看这个常见问题解答是否有帮助。WCF服务返回字典<字符串,对象>