Je veux créer un type anonyme que je peux définir dynamiquement le nom de la propriété. il n'est pas nécessaire que ce soit un type anonyme. Tout ce que je veux réaliser, c'est définir dynamiquement les noms des propriétés des objets. Cela peut être ExpandoObject, mais le dictionnaire ne fonctionnera pas pour moi.
Quelles sont vos suggestions?
Seul ExpandoObject
peut avoir des propriétés dynamiques.
Edit : Voici un exemple d'utilisation de Expand Object (à partir de sa description MSDN):
dynamic sampleObject = new ExpandoObject();
sampleObject.TestProperty = "Dynamic Property"; // Setting dynamic property.
Console.WriteLine(sampleObject.TestProperty );
Console.WriteLine(sampleObject.TestProperty .GetType());
// This code example produces the following output:
// Dynamic Property
// System.String
dynamic test = new ExpandoObject();
((IDictionary<string, object>)test).Add("DynamicProperty", 5);
Console.WriteLine(test.DynamicProperty);
Vous pouvez convertir ExpandoObject
dans un dictionnaire et le remplir de cette façon, puis les clés que vous définissez apparaîtront comme noms de propriété sur le ExpandoObject ...
dynamic data = new ExpandoObject();
IDictionary<string, object> dictionary = (IDictionary<string, object>)data;
dictionary.Add("FirstName", "Bob");
dictionary.Add("LastName", "Smith");
Console.WriteLine(data.FirstName + " " + data.LastName);