我有一个接受帖子的webapi,如下所示(示例)
public Foo Post(MyInfo info)
{
return new Foo();
}
MyInfo可能是这样的
public class MyInfo
{
[JsonProperty(PropertyName = "n")]
public int MyInt1{ get; set; }
[JsonProperty(PropertyName = "v")]
public string MyString1{ get; set; }
}
当我的桌面应用程序(版本 1)向此 webapi 发布请求时,一切正常。我用 JsonConverter 序列化对象。
现在假设,我想向MyInfo添加一个新参数,如下所示
public class MyInfo
{
[JsonProperty(PropertyName = "n")]
public int MyInt1{ get; set; }
[JsonProperty(PropertyName = "v")]
public string MyString1{ get; set; }
[JsonProperty(PropertyName = "s")]
public MyEnum EnumValue{ get; set; }
}
我更新了网站和 webapi,并发布了桌面应用程序的新版本(版本 2)。
webapi 适用于我的桌面应用程序版本 2。但是,当我使用我的版本 1 时,webapi 中的参数(MyInfo info)以 null 结尾。提醒一下,版本 1 发送完全相同的 MyInfo 对象,只是缺少一个属性。
如果缺少属性,如何避免此问题并定义默认值。
谢谢
事实上,问题是我有两个具有相同 Json 属性名称的属性。
它与默认值完全无关。