Comment obtenir la propriété de JObject dynamique par programme

Je suis de l'analyse d'une chaîne JSON à l'aide de la NewtonSoft JObject.
Comment puis-je obtenir les valeurs à partir d'un objet dynamique par programmation?
Je veux simplifier le code pour ne pas me répéter pour chaque objet.

public ExampleObject GetExampleObject(string jsonString)
{
ExampleObject returnObject = new ExampleObject();
dynamic dynamicResult = JObject.Parse(jsonString);
if (!ReferenceEquals(dynamicResult.album, null))
   {
       //code block to extract to another method if possible
       returnObject.Id = dynamicResult.album.id; 
       returnObject.Name = dynamicResult.album.name;
       returnObject.Description = dynamicResult.albumsdescription;
       //etc..
   }
else if(!ReferenceEquals(dynamicResult.photo, null))
   {
       //duplicated here
       returnObject.Id = dynamicResult.photo.id;
       returnObject.Name = dynamicResult.photo.name;
       returnObject.Description = dynamicResult.photo.description;
       //etc..
   }
else if..
//etc..

return returnObject;
}

Est il possible que je peux extraire les blocs de code dans le "si" les déclarations d'une méthode distincte de l'e.g:

private void ExampleObject GetExampleObject([string of desired type goes here? album/photo/etc])
{
  ExampleObject returnObject = new ExampleObject();
  returnObject.Id = dynamicResult.[something goes here?].id;
  returnObject.Name = dynamicResult.[something goes here?].name;
  //etc..
  return returnObject;
}

Est-il possible, puisque nous ne pouvons pas utiliser la réflexion pour les objets dynamiques. Ou suis-je encore à l'aide de la JObject correctement?

Grâce.

source d'informationauteur dcdroid