Como recarregar um assembly para um domínio de aplicativo .NET?
Estamos carregando um assembly (uma DLL) que lê um arquivo de configuração. Precisamos alterar o arquivo de configuração e, em seguida, recarregar o assembly. Vemos que depois de carregar a montagem na segunda vez, não há alteração na configuração. Alguém vê o que está errado aqui? Deixamos de fora os detalhes da leitura no arquivo de configuração.
<code>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 </code>