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

大致上

从()


我不担心数字,而是字段名。我的问题是,同一类型在两个不同的项目中以两种不同的方式序列化,即使源于同一个地方。你检查了吗?