JSON.Net模式所需的属性

时间:2019-02-23 19:23:12

标签: json.net schema required

我在由几个类实现的接口中有一个属性。在其中一些类中,JSON模式中需要该属性。在其他情况下则不是。使用Newtonsoft.Json.Schema仅在需要的地方包含所需属性的最简单方法是什么?

这是行不通的,尽管我希望它能做到:

[JsonObject( MemberSerialization.OptOut )]
public interface IFace
{
    string Prop
    {
        get;
        set;
    }
} 

public class IFace_impl : IFace
{
    [JsonProperty( Required = Required.Always )]
    public string Prop
    {
        get;
        set;
    }
}

为IFace_impl生成JSON模式时,尽管有标记,Prop也不包括在“必需”列表中。

这确实有用,但很烦人:

[JsonObject( MemberSerialization.OptOut )]
public interface SubIFace : IFace
{
    [JsonProperty( Required = Required.Always )]
    new string Prop
    {
        get;
        set;
    }
} 

public class IFace_impl : SubIFace
{
    public string Prop
    {
        get;
        set;
    }
}

现在,当为IFace_impl生成架构时,Prop将包含在Required属性数组中。

当然,有更好的方法可以做到这一点。有什么建议吗?

0 个答案:

没有答案