remarks publicacion obtener example c# assemblies

publicacion - ¿Cómo obtener C#.Net Assembly por su nombre?



params comments c# (5)

¿Has intentado mirar Assembly.Load(...) ?

¿Hay algo como esto?

AppDomain.CurrentDomain.GetAssemblyByName("TheAssemblyName")

entonces, en lugar de pasar por AppDomain.CurrentDomain.GetAssemblies() , podríamos obtener el ensamblado específico directamente.


Depende de lo que estás tratando de lograr.

Si solo desea obtener el ensamblado, debe llamar a System.Reflection.Assembly.Load() (como ya se indicó). Esto se debe a que .NET comprueba automáticamente si el ensamblaje ya se ha cargado en el dominio de la aplicación actual y no lo carga nuevamente si lo ha estado.

Si solo está tratando de verificar si el ensamblaje se ha cargado o no (por algún motivo de diagnóstico, tal vez), entonces tiene que recorrer todos los ensamblajes cargados.

Otra razón por la que puede querer hacer un bucle es si solo conoce parte de la información del conjunto (por ejemplo, no está seguro de la versión). Es decir, sabes lo suficiente como para "reconocerlo cuando lo ves", pero no lo suficiente como para cargarlo. Sin embargo, ese es un escenario bastante oscuro e improbable.


Eche un vistazo a la clase System.Reflection.Assembly, en particular, al método Load: MSDN


Lo resolví con LINQ

Assembly GetAssemblyByName(string name) { return AppDomain.CurrentDomain.GetAssemblies(). SingleOrDefault(assembly => assembly.GetName().Name == name); }


Para aquellos que solo necesitan acceder a los metadatos del ensamblaje (versión, etc.), revisen Assembly.ReflectionOnlyLoad (name), que solo puede cargar los metadatos, posiblemente guardando en memoria e IO.