Je sais que certaines questions traitent de ce sujet, mais les réponses consistent généralement à recommander un dictionnaire ou une collection de paramètres, ce qui ne fonctionne pas dans mon cas.
J'utilise une bibliothèque qui fonctionne par réflexion pour faire beaucoup de choses intelligentes avec des objets ayant des propriétés. Cela fonctionne avec des classes définies, ainsi qu'avec des classes dynamiques. J'ai besoin d'aller un peu plus loin et de faire quelque chose de ce genre :
public static object GetDynamicObject(Dictionary<string,object> properties) {
var myObject = new object();
foreach (var property in properties) {
//This next line obviously doesn't work...
myObject.AddProperty(property.Key,property.Value);
}
return myObject;
}
public void Main() {
var properties = new Dictionary<string,object>();
properties.Add("Property1",aCustomClassInstance);
properties.Add("Property2","TestString2");
var myObject = GetDynamicObject(properties);
//Then use them like this (or rather the plug in uses them through reflection)
var customClass = myObject.Property1;
var myString = myObject.Property2;
}
La bibliothèque fonctionne bien avec un type de variable dynamique, avec des propriétés assignées manuellement. Cependant, je ne sais pas combien ni quelles propriétés seront ajoutées à l'avance.