韦巴皮.定义缺少枚举属性时的默认 Json 值



我有一个接受帖子的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 属性名称的属性。

它与默认值完全无关。

相关内容

  • 没有找到相关文章

最新更新