Мені часто потрібно розширити свою модель домену додатковою інформацією, перш ніж повертати її клієнту за допомогою WebAPI. Щоб уникнути створення ViewModel, я думав, що можу повернути JObject з додатковими властивостями. Однак я не зміг знайти прямий спосіб перетворити об'єкт будь-якого типу на JObject за допомогою одного виклику до бібліотеки Newtonsoft JSON. Я придумав щось подібне:
- перший SerializeObject
- потім Синтаксичний розбір
- і розширити JObject
Наприклад:
var cycles = cycleSource.AllCycles();
var settings = new JsonSerializerSettings
{
ContractResolver = new CamelCasePropertyNamesContractResolver()
};
var vm = new JArray();
foreach (var cycle in cycles)
{
var cycleJson = JObject.Parse(JsonConvert.SerializeObject(cycle, settings));
// extend cycleJson ......
vm.Add(cycleJson);
}
return vm;
Я це правильно?
JObject.FromObject(your_domain_object)це те, що ви шукаєте. Дивіться відповідь @ LB.