У меня есть свойство в интерфейсе, который реализован несколькими классами.В некоторых из этих классов свойство требуется в схеме 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;
}
}
Когда генерируется схема JSON для IFace_impl, 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 включается в массив обязательных свойств.
Конечно, есть лучший способ сделать это.Есть предложения?