Ich weiß, dass es einige Fragen gibt, die sich damit befassen, aber die Antworten folgen normalerweise der Empfehlung eines Wörterbuchs oder einer Sammlung von Parametern, was in meiner Situation nicht funktioniert.
Ich benutze eine Bibliothek, die durch Reflexion arbeitet, um viele clevere Dinge mit Objekten mit Eigenschaften zu tun. Dies funktioniert sowohl mit definierten als auch mit dynamischen Klassen. Ich muss noch einen Schritt weiter gehen und etwas in diese Richtung tun:
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;
}
Die Bibliothek funktioniert gut mit einem dynamischen Variablentyp, dessen Eigenschaften manuell zugewiesen werden. Ich weiß jedoch nicht, wie viele oder welche Eigenschaften vorher hinzugefügt werden.