J'ai souvent besoin d'étendre mon modèle de domaine avec des informations supplémentaires avant de le renvoyer au client avec WebAPI. Pour éviter la création de ViewModel, j'ai pensé que je pourrais renvoyer JObject avec des propriétés supplémentaires. Je n'ai cependant pas pu trouver de moyen direct de convertir un objet de tout type en JObject avec un seul appel à la bibliothèque Newtonsoft JSON. J'ai trouvé quelque chose comme ça:
- premier SerializeObject
- puis Parse
- et étendre JObject
Par exemple.:
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;
Je de cette manière correcte?
JObject.FromObject(your_domain_object)est ce que vous recherchez. Voir la réponse de @ LB.