Hi gurus de la programación, hoy vengo con una duda, os la expongo a continuación:
Tengo una nested class, sencillita, que forma parte de otra nested class, que forma parte de la clase principal:
Edit
Bueno por cuestiones laborales tengo que borrar las dos clases, pero se queda la función que es la que "representa" mis dudas
/Edit
Ahora tengo un método, que me rellena la clase principal dependiendo de los valores que tengo en un diccionario:
Código C#:
Ver originalprivate void FillClass(Object inObject, Dictionary<String, String> inValues)
{
Type oType = inObject.GetType();
PropertyInfo[] infos = oType.GetProperties();
foreach (PropertyInfo info in infos)
{
String pName = info.Name;
if (info.PropertyType.Name.Contains("List"))
{
pName = pName.Substring(0, pName.IndexOf("List"));
if (inValues.ContainsKey(pName.ToLower()))
{
if (!inValues[pName.ToLower()].Equals(""))
{
var convert = (IList)info.GetValue(inObject, null);
Type t = convert.GetType().GetGenericArguments()[0];
Object obj = (Object)Activator.CreateInstance(t, inValues["jahresverbrauchsprognose"]);
convert.Add(obj);
}
}
}
else
if (inValues.ContainsKey(pName.ToLower()))
{
info.SetValue(inObject, inValues[pName.ToLower()], null);
}
}
}
Escenario:
-Los tipos de datos con los que trabajo en la clase principal son: String, DateTime y List<T> (T= Objecto complejo)
-Con los String no tengo problema, como veis en el "else" me pone los valores en el objeto que está instanciado antes de llamar a la función (lo paso por parametro)
-Con los DateTime tampoco hay problema porque solo están en la clase principal.
Problema:
-Las listas de objetos complejos: Como veis en las separaciones que he señalado en el segundo nivel es con la que estoy "Testeando" he intentando solucionar el problema.
La cosa es que el problema esta a medio solucionar, el objeto se crea, lo añado a la lista, y mas adelante, esa lista, la pongo en el sitio al que pertenece en el segundo nivel pero, como veis, no es genérico:
Que pasa cuando la nested class pertinente no tiene parametros en el constructor? como puedo saber si tiene parametros en el constructor sin que me lo diga una excepcion? Como puedo saber que parámetros me pide? Teneis una solución mejor que no sea hacerlo a mano clase por clase (por eso estoy usando reflection), bueno, gracias de antemano, seguiré trabajando mientras tanto a ver si encuentro una solución. Saludos