Tengo un fragmento de código en el que a veces necesito crear un nuevo tipo genérico, pero con un número desconocido de parámetros genéricos. Por ejemplo:Fabricación de genéricos con muchos tipos
public object MakeGenericAction(Type[] types)
{
return typeof(Action<>).MakeGenericType(paramTypes);
}
El problema es que si tengo más de un Tipo en mi matriz, el programa se bloqueará. En el corto plazo, he encontrado algo así como un paso intermedio.
public object MakeGenericAction(Type[] types)
{
if (types.Length == 1)
{
return typeof(Action<>).MakeGenericType(paramTypes);
}
else if (types.Length ==2)
{
return typeof(Action<,>).MakeGenericType(paramTypes);
}
..... And so on....
}
Esto funciona, y es bastante fácil de cubrir mis escenarios, pero parece realmente hacky. ¿Hay una mejor manera de manejar esto?
solución Hermosa, elegante (o al menos tanto como los genéricos reflexivos pueden ser) – KeithS
Muy bueno. ¿Qué pasaría si tuviera más de 16 tipos en su matriz? Además del código, la policía le quita todos los dispositivos electrónicos. – IndigoDelta
@IndigoDelta los engranajes se caerán; p –