Tengo el siguiente código:Método Genérico Ejecutado con un tipo de ejecución
public class ClassExample
{
void DoSomthing<T>(string name, T value)
{
SendToDatabase(name, value);
}
public class ParameterType
{
public readonly string Name;
public readonly Type DisplayType;
public readonly string Value;
public ParameterType(string name, Type type, string value)
{
if (string.IsNullOrEmpty(name))
throw new ArgumentNullException("name");
if (type == null)
throw new ArgumentNullException("type");
this.Name = name;
this.DisplayType = type;
this.Value = value;
}
}
public void GetTypes()
{
List<ParameterType> l = report.GetParameterTypes();
foreach (ParameterType p in l)
{
DoSomthing<p.DisplayType>(p.Name, (p.DisplayType)p.Value);
}
}
}
Ahora, sé que no se puede realizar HacerAlgo() ¿Hay alguna otra manera de utilizar esta función?
Solo una captura, p.Valor es una cadena por lo que la invocación fallará a menos que p.DisplayType sea typeof (cadena). – stevemegson
vergüenza esta es la única solución, meh –
Bueno, estoy pensando que puede usar dynamic en 4.0 e inferirá el tipo de argumento genérico correcto, pero no he tenido la oportunidad de verificarlo todavía. No es que esté haciendo algo diferente bajo las cubiertas que el código anterior, pero tal vez sí. –