Мне часто нужно расширить мою модель домена дополнительной информацией, прежде чем возвращать ее клиенту с помощью 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.