Traiter l'objet comme le dictionnaire des propriétés en C #

Je veux être en mesure d'accéder à des valeurs de propriété à un objet, comme un dictionnaire, en utilisant le nom de la propriété à la clé. Je n'ai pas vraiment de soins si les valeurs sont retournées comme des objets, de sorte Dictionary<string, object> est très bien. C'est l'utilisation prévue:

object person = new { Name: "Bob", Age: 45 };
IDictionary<string, object> lookup = new PropertyDictionary(person);
string name = (string)person["Name"];
person["Age"] = (int)person["Age"] + 1; //potentially editable

J'étais sur le point de mettre en œuvre ma propre classe, mais ensuite j'ai commencé à remarquer des classes comme DynamicObject mettre en œuvre les IDictionary interface, qui fait penser à ce qui était déjà fait pour moi quelque part.

Ce que je veux, c'est similaire à la fonctionnalité utilisée par ASP.NET MVC qui permet d'utiliser les types anonymes pour définir la balise HTML attributs. J'ai beaucoup de classes qui utilisent des dictionnaires en tant que sources de données, mais la plupart du temps, je devrais être capable de passer dans les objets.

Depuis que c'est pour un usage général bibliothèquej'ai pensé que je voudrais créer une classe réutilisable qui décorées simplement un objet avec la IDictionary interface. Il va me sauver de la création d'une explosion de surcharges.

source d'informationauteur Travis Parks