¿Cuál es la mejor forma de convertir una cadena en un objeto Type en .NET?La mejor manera de obtener un objeto Type a partir de una cadena en .NET
Los aspectos a considerar:
- El tipo puede estar en un montaje diferente.
- El ensamblaje del tipo puede que aún no se haya cargado.
Este es mi intento, pero no se refiere a la segunda cuestión
Public Function FindType(ByVal name As String) As Type
Dim base As Type
base = Reflection.Assembly.GetEntryAssembly.GetType(name, False, True)
If base IsNot Nothing Then Return base
base = Reflection.Assembly.GetExecutingAssembly.GetType(name, False, True)
If base IsNot Nothing Then Return base
For Each assembly As Reflection.Assembly In _
AppDomain.CurrentDomain.GetAssemblies
base = assembly.GetType(name, False, True)
If base IsNot Nothing Then Return base
Next
Return Nothing
End Function
Abordar el segundo caso es difícil. ¿Cómo saber genéricamente dónde residen los ensamblajes descargados? De lo contrario, ver [esta respuesta] (http://stackoverflow.com/a/7286354/661933), bastante bueno. – nawfal