Sé que hay algunas preguntas que abordan esto, pero las respuestas generalmente siguen la línea de recomendar un Diccionario o una Colección de parámetros, lo cual no funciona en mi situación.
Estoy usando una biblioteca que funciona mediante la reflexión para hacer muchas cosas inteligentes con objetos con propiedades. Esto funciona con clases definidas, así como con clases dinámicas. Necesito dar un paso más y hacer algo en este sentido:
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 biblioteca funciona bien con un tipo de variable dinámica, con propiedades asignadas manualmente. Sin embargo, no sé cuántas o qué propiedades se agregarán de antemano.
fuente