Estamos cargando un ensamblado (un archivo DLL) que lee un archivo de configuración. Necesitamos cambiar el archivo de configuración y luego volver a cargar el conjunto. Vemos que después de cargar el conjunto la segunda vez, no hay cambios en la configuración. ¿Alguien ve qué está mal aquí? Olvidamos los detalles de lectura en el archivo de configuración.¿Cómo volver a cargar un ensamblaje para un dominio de aplicación .NET?
AppDomain subDomain;
string assemblyName = "mycli";
string DomainName = "subdomain";
Type myType;
Object myObject;
// Load Application domain + Assembly
subDomain = AppDomain.CreateDomain(DomainName,
null,
AppDomain.CurrentDomain.BaseDirectory,
"",
false);
myType = myAssembly.GetType(assemblyName + ".mycli");
myObject = myAssembly.CreateInstance(assemblyName + ".mycli", false, BindingFlags.CreateInstance, null, Params, null, null);
// Invoke Assembly
object[] Params = new object[1];
Params[0] = value;
myType.InvokeMember("myMethod", BindingFlags.InvokeMethod, null, myObject, Params);
// unload Application Domain
AppDomain.Unload(subDomain);
// Modify configuration file: when the assembly loads, this configuration file is read in
// ReLoad Application domain + Assembly
// we should now see the changes made in the configuration file mentioned above
¿por qué usted nee d para volver a cargar el ensamblaje después de actualizar el archivo de configuración? ¿Contiene definiciones de tipos que no se crean dinámicamente? –
Mitch - sí lo hacen –