Мы загружаем сборку (DLL), которая считывает файл конфигурации. Нам нужно изменить файл конфигурации, а затем снова загрузить сборку. Мы видим, что после загрузки сборки в 2-й раз, изменений в конфигурации нет. Кто-нибудь видит, что здесь не так? Мы не учитывали детали чтения в файле конфигурации.Как перезагрузить сборку для домена .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
почему вы урожденная d перезагрузить сборку после обновления файла конфигурации? Он содержит определения типов, которые динамически создаются? –
Mitch - да, они делают –