Wir laden eine Assembly (eine DLL), die eine Konfigurationsdatei liest. Wir müssen die Konfigurationsdatei ändern und dann die Assembly erneut laden. Wir sehen, dass nach dem zweiten Laden der Baugruppe die Konfiguration nicht geändert wird. Wer sieht hier was falsch ist? Wir haben die Details des Einlesens in der Konfigurationsdatei weggelassen.Wie wird eine Assembly für eine .NET-Anwendungsdomäne erneut geladen?
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
warum nee Sie d um die Assembly nach dem Update der Konfigurationsdatei neu zu laden? Enthält es Typdefinitionen, die dynamisch erstellt werden? –
Mitch - ja, sie tun –