Работа с событием AppDomain.AssemblyResolve

Я пытаюсь использовать событие 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 , предоставленный событием, не так полезен.

Можете ли вы предложить мне обходной путь?

Есть ли способ передать некоторые другие аргументы событию при его запуске?

11
задан Uwe Keim 10 September 2019 в 19:33
поделиться