我在由几个类实现的接口中有一个属性。在其中一些类中,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属性数组中。
当然,有更好的方法可以做到这一点。有什么建议吗?