Je sais qu'il y a des questions qui traitent de cela, mais les réponses suivent généralement le type de recommandation d'un dictionnaire ou d'une collection de paramètres, ce qui ne fonctionne pas dans ma situation.
J'utilise une bibliothèque qui fonctionne par réflexion pour faire beaucoup de choses intelligentes avec des objets avec des propriétés. Cela fonctionne avec des classes définies, ainsi que des classes dynamiques. Je dois aller plus loin et faire quelque chose du 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 très bien avec un type de variable dynamique, avec des propriétés attribuées manuellement. Cependant, je ne sais pas combien ou quelles propriétés seront ajoutées au préalable.