So che ci sono alcune domande che affrontano questo problema, ma le risposte di solito seguono la falsariga di consigliare un dizionario o una raccolta di parametri, che non funziona nella mia situazione.
Sto usando una libreria che funziona attraverso la riflessione per fare molte cose intelligenti con oggetti con proprietà. Funziona con classi definite e classi dinamiche. Devo fare un ulteriore passo avanti e fare qualcosa in questo senso:
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 libreria funziona bene con un tipo di variabile dinamica, con proprietà assegnate manualmente. Tuttavia non so quante o quali proprietà verranno aggiunte in anticipo.