Quiero poder acceder a valores de propiedad en un objeto como un diccionario, utilizando el nombre de la propiedad como clave. Realmente no me importa si los valores se devuelven como objetos, por lo que Dictionary<string, object>
está bien. Esta es la intención de uso:Diccionario de Propiedades de objeto de objeto en C#
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
estaba a punto de poner en práctica mi propia clase para esto, pero luego empecé a notar clases como DynamicObject implementan la interfaz IDictionary, lo que hizo pensar que esto ya se está haciendo para mí en alguna parte.
Lo que quiero es similar a la funcionalidad utilizada por ASP.NET MVC que permite el uso de tipos anónimos para establecer atributos de etiquetas HTML. Tengo muchas clases que usan diccionarios como fuentes de datos, pero la mayoría de las veces también podría pasar objetos.
Dado que esto es para un propósito general library, pensé que crearía una clase reutilizable que simplemente decorara un objeto con la interfaz IDictionary. Me salvará de crear una explosión de sobrecargas.
Algo así como la indización en MSDN ... http://msdn.microsoft.com/en-us/library/6x16t2tx.aspx – Lloyd