Ufff, el ultimo obstaculo ... a ver...
Tengo una clase generica
public class Keyframe<T> where T : struct
{ ... }
y tengo un problema para instanciarla por reflexion:
tengo una cadena de texto con el tipo base ("Components.Scene.Sequences.Animators.Keyframe")
y otra cadena de texto con el argumento generico ("Microsoft.Xna.Framework.Vector2")
y no veo manera de instanciar desde ahi ¿a alguien se le ocurre alguna idea?
Esto te ayuda?
http://msdn.microsoft.com/en-us/library/b8ytshk6.aspx
No.. :(
porque para instanciar lo primero que me dice que haga es:
Type d1 = typeof<Components.Scene.Sequences.Animators.Keyframe<>>
pero yo no tengo el tipo en estatico, yo tengo una cadena de texto en runtime,
y por mucho Type.GetType(cadena) que hago no consigo obtener la definicion del tipo.
He seguido para adelante porque estan las instancias de ese tipo siempre estan en una lista y a traves del metodo Add he accedido al parametro para obtener el tip, pero de verdad que me gustaria saber si se puede hacer directamente.
Me he puesto a investigar un poco :)
List<int> myList = new List<int>();
Type t4 = myList.GetType();
Type t5 = t4.GetGenericTypeDefinition();
Si te fijas el nombre del tipo t5 es "List`1". He decidido probar:
Type t1 = Type.GetType("System.Collections.Generic.Dictionary`2");
Y funciona, así que usando la cadena "Components.Scene.Sequences.Animators.Keyframe`1" te debería funcionar :)
Yo probe esto:
Type.GetType("Components.Scene.Sequences.Animators.Keyframe`1[Microsoft.Xna.Framework.Vector2]");
y no funciono, aunque esto cobra sentido para mi, el 1 es el numero de argumentos, ahora ya si podria llamar MakeGenericType.
Muchas gracias