Tôi thường cần mở rộng mô hình Miền của mình với thông tin bổ sung trước khi trả lại cho khách hàng bằng WebAPI. Để tránh tạo ViewModel, tôi nghĩ rằng tôi có thể trả về JObject với các thuộc tính bổ sung. Tuy nhiên, tôi không thể tìm thấy cách trực tiếp để chuyển đổi đối tượng thuộc bất kỳ loại nào thành JObject chỉ với một lệnh gọi đến thư viện JSON của Newtonsoft. Tôi đã nghĩ ra một cái gì đó như thế này:
- SerializeObject đầu tiên
- sau đó phân tích cú pháp
- và mở rộng JObject
Ví dụ.:
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;
Tôi cách này đúng?
JObject.FromObject(your_domain_object)là những gì bạn đang tìm kiếm. Xem câu trả lời của @ LB.