Wie lade ich eine Assembly für eine .NET-Anwendungsdomäne neu?

Wir laden eine Assembly (eine DLL), die eine Konfigurationsdatei liest. Wir müssen die Konfigurationsdatei ändern und dann die Assembly neu laden. Wir sehen, dass nach dem Laden der Assembly zum zweiten Mal keine Änderung in der Konfiguration erfolgt. Kann jemand sehen, was hier falsch ist? Wir haben die Details des Lesens in der Konfigurationsdatei ausgelassen.

<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>

Antworten auf die Frage(4)

Ihre Antwort auf die Frage