C# 每个项目的版本类型序列化是否不同?
我有一个C# 每个项目的版本类型序列化是否不同?,c#,wcf,C#,Wcf,我有一个Version字段,它是数据合同的一部分,如下所示: [DataMember(EmitDefaultValue = false)] public Version version { get; set; } 在REST请求中,它最终被序列化为 "version": { "_Build": 0, "_Major": 1, "_Minor": 0, "_Revision": 0 } "version":{ "Major":1, "Minor"
Version
字段,它是数据合同的一部分,如下所示:
[DataMember(EmitDefaultValue = false)]
public Version version { get; set; }
在REST请求中,它最终被序列化为
"version": {
"_Build": 0,
"_Major": 1,
"_Minor": 0,
"_Revision": 0
}
"version":{
"Major":1,
"Minor":0,
"Build":0,
"Revision":-1,
"MajorRevision":-1,
"MinorRevision":-1
}
这对我来说很好。但是,我启动一个新项目,将该项目添加为引用,然后当我尝试从新项目发送REST请求时,它会被序列化为
"version": {
"_Build": 0,
"_Major": 1,
"_Minor": 0,
"_Revision": 0
}
"version":{
"Major":1,
"Minor":0,
"Build":0,
"Revision":-1,
"MajorRevision":-1,
"MinorRevision":-1
}
当然,这给我带来了一个不好的要求。注意:这里我担心的是不同的字段名,而不是实际的数字。我在这两个版本中使用了相同的版本。修订值中的负数(-1)表示修订号未定义
在下面的链接中查找(-1)
属性EmitDefaultValue=false
将仅对默认值起作用(是否序列化默认值)
在本例中,“-1”不是整数类型(修订数据类型)的默认值。它是零
可能要处理这种情况,请使用onserialization()
属性并自定义datamembers
大致上
从()
我不担心数字,而是字段名。我的问题是,同一类型在两个不同的项目中以两种不同的方式序列化,即使源于同一个地方。你检查了吗?