Имеющий Что Сказать
Зарегистрирован: 25 February 2005
Сообщения: 82
Примеры кода: 0
|
Опять о выгрузке сборок |
04 July 2008 12:18 |
|
|
|
|
Я через InvokeMember выполняю функцию из этой сборки и запоминаю у себя результат.
Подгрузка:
// создание домена
AppDomain ad2 = AppDomain.CreateDomain(Guid.NewGuid().ToString());
// подгрузка сборки
AssemblyName assName = AssemblyName.GetAssemblyName(destFileName);
Assembly asm2 = ad2.Load(assName, ad2.Evidence);
// выполняем метод
Type t2 = asm2.GetExportedTypes()[0];
object o2 = t2.InvokeMember("GetTermsFromText", BindingFlags.InvokeMethod | BindingFlags.Static | BindingFlags.Public, null, null, new object[1] { text });
// результат запоминаем
if (o2 != null) resultList = (List)o2;
// выгружаем домен
AppDomain.Unload(ad2);
// удаляем файл подгруженной сборки
try
{
System.IO.File.Delete(destFileName);
}
catch (Exception ex)
{
Log.Write("Ошибка удаления файла : " + destFileName + " " + ex.Message);
}
Может быть результат надо скопировать во вновь созданный List? А таким образом у меня просто запоминается указатель, который и держит сборку в основном домене?
С уважением, Бобиков А.Ю.
Данное сообщение получено с сайта GotDotNet.RU
Последний раз редактировалось 04 July 2008 12:17
|
|