Я пытаюсь использовать событие AppDomain.AssemblyResolve
для обработки исключений при разрешении сборок некоторых dll, загруженных во время выполнения (SerializationException для динамически загружаемого типа ).
Когда событие запускается, я загружаю все библиотеки DLL в свой каталог и создаю массив Assembly
, затем я использую этот метод, чтобы получить Assembly
, содержащий указанный мной тип:
public static Assembly GetAssemblyContainingType(String completeTypeName,
Assembly[] assemblies)
{
Assembly assembly = null;
foreach (Assembly currentassembly in assemblies)
{
Type t = currentassembly.GetType(completeTypeName, false, true);
if (t != null)
{
assembly = currentassembly;
break;
}
}
return assembly;
}
Проблема в том, что этот код работает только с AssemblyQualifiedName
, а ResolveEventArgs.Name
, предоставляемый событием, не так полезен.
Можете ли вы предложить мне обходной путь?
Есть ли способ передать некоторые другие аргументы событию при его запуске?