Как использовать Перенаправление Привязки сборки для игнорирования пересмотра и номеров сборки

Нейронные сети являются видом самоизменения кода.

Затем существуют эволюционные алгоритмы , которые изменяют себя.

13
задан Anthony D 22 September 2009 в 15:24
поделиться

2 ответа

AppDomain.AssemblyResolve event should help.

5
ответ дан 1 December 2019 в 19:50
поделиться

Благодаря предложению Леппи об использовании события AppDomain.AssemblyResolve мне удалось решить аналогичную проблему. Вот как выглядит мой код:

    public void LoadStuff(string assemblyFile)
    {
        AppDomain.CurrentDomain.AssemblyResolve += 
            new ResolveEventHandler(CurrentDomain_AssemblyResolve);
        var assembly = Assembly.LoadFrom(assemblyFile);

        // Now load a bunch of types from the assembly...
    }

    Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
    {
        var name = new AssemblyName(args.Name);
        if (name.Name == "FooLibrary")
        {
            return typeof(FooClass).Assembly;
        }
        return null;
    }

Он полностью игнорирует номер версии и заменяет уже загруженную библиотеку на любую ссылку на библиотеку с именем «FooLibrary». Вы можете использовать другие атрибуты класса AssemblyName , если хотите быть более строгими. FooClass может быть любым классом в сборке FooLibrary.

28
ответ дан 1 December 2019 в 19:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: