Desidero poter accedere ai valori di proprietà in un oggetto come un dizionario, utilizzando il nome della proprietà come chiave. Non mi interessa davvero se i valori vengono restituiti come oggetti, quindi Dictionary<string, object>
va bene. Questo è l'utilizzo previsto:Trattare oggetto come dizionario proprietà in 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
Stavo per implementare la mia classe per questo, ma poi ho iniziato a notare classi come DynamicObject implementano l'interfaccia IDictionary, che ha reso che questo era già stato fatto per me da qualche parte.
Quello che voglio è simile alla funzionalità utilizzata da ASP.NET MVC che consente di utilizzare tipi anonimi per impostare attributi di tag HTML. Ho un sacco di classi che usano dizionari come fonti di dati, ma il più delle volte dovrei essere in grado di passare anche gli oggetti.
Dato che questo è per uno scopo generale library, ho pensato di creare una classe riutilizzabile che decorasse semplicemente un oggetto con l'interfaccia IDictionary. Mi salverà dal creare un'esplosione di sovraccarichi.
Qualcosa di simile indicizzazione su MSDN ... http://msdn.microsoft.com/en-us/library/6x16t2tx.aspx – Lloyd