Я пишу веб-api, используя мои существующие классы моделей и сервисы модели, которые используются многими другими приложениями, которые также нуждаются в полной демонстрации модели при сериализации. Могу ли я использовать один и тот же объект модели для веб-api и показывать только несколько полей.C# избегать сериализации дочерних свойств объекта вложенного класса
Я попытался использовать JsonContractResolver, но он не может сериализовать дочерние свойства в вложенном классе.
/*Model class*/
public class A
{
public int A1 { get; set; }
public DateTime A2 { get; set; }
public List<B> A3 { get; set; }
}
public class B
{
public string B1 { get; set; }
public string B2 { get; set; }
public string B3 { get; set; }
}
Ожидаемый результат: Когда метод веб-приложение получает элементы класса А, то она должна возвращать следующие JSON:
{"A1":1,"A2":"2017-02-10","A3":[{"B1":"test1","B2":"test2","B3":"test3"}]}
Когда веб-апи получает член класса А, он должен возврат:
{"A1":1,"A3":[{"B1":"test1"}]}
Просьба сообщить, какой должен быть наилучший подход.
_ «используют один и тот же объект модели для Web API и выставить только несколько полей» _ - использование ViewModels, использовать анонимные типы или [ используйте собственный сериализатор для каждого приложения или конечной точки] (http://stackoverflow.com/questions/25157511/newtonsoft-add-jsonignore-at-runtime). Что показали ваши исследования? – CodeCaster