Por varias razones, necesito implementar un mecanismo de caché de tipo en C#. Afortunadamente, CLR proporciona Type.GUID
para identificar de forma única un tipo. Lamentablemente, no encuentro ninguna forma de buscar un tipo basado en este GUID. Hay Type.GetTypeFromCLSID()
pero según mi comprensión de la documentación (y experimentos) que hace algo muy, muy diferente.Obtiene el tipo de GUID
¿Hay alguna manera de obtener un tipo basado en su GUID menos de bucle a través de todos los tipos cargados y en comparación con sus GUID?
EDIT: Olvidé mencionar que realmente me gustaría una "huella dactilar tipográfica" de ancho fijo, es por eso que el GUID es tan atractivo para mí. En un caso general, por supuesto, el nombre completo del tipo funcionaría.
'typeof() AssemblyQualifiedName' no encaja ¿para ti? –
Rubens: Sí, pero preferiría algo de un ancho fijo, ya que simplificaría mucho mi algoritmo (que está fuera del alcance de esta pregunta) y el tamaño fijo de 16 bytes de un GUID sería ideal. Tal vez podría usar el código hash del nombre calificado pero, una vez más, tendría el mismo problema al buscar el tipo basado en el hash. –
y esto también puede ser útil: http://ayende.com/Blog/archive/2008/01/12/System.Type.GUID-stability.aspx –