Мне часто нужно расширить свою модель домена с дополнительной информацией, прежде чем возвращать ее клиенту с помощью WebAPI. Чтобы избежать создания ViewModel, я думал, что могу вернуть JObject с дополнительными свойствами. Однако я не мог найти прямой способ конвертировать объект любого типа в JObject с одним вызовом в библиотеку Newtonsoft JSON. Я придумал что-то вроде этого:
- сначала SerializeObject
- затем Parse
- и расширьте 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;
Я этот правильный путь?