Assembly Load Context .Net Core 2.0

278
11 октября 2017, 05:36

В чем отличие вот этих двух реализаций?

Реализация 1:

    private QuestFromDll GetQuestConfigFromByets(byte[] data)
    {
        Assembly assembly = Assembly.Load(data);
        var types = assembly.GetTypes();
        Type resultType = null;
        foreach (Type type in types)
        {
            foreach (Type interfaceType in type.GetInterfaces())
            {
                if (interfaceType.Equals(typeof(IQuestConfig)))
                {
                    resultType = type;
                    break;
                }
            }
        }
        var setupObject = (IQuestConfig)Activator.CreateInstance(resultType);
        var result = setupObject.SetQuest();
        return result;
    }

Реализация 2:

    private QuestFromDll GetQuestConfigFromByets(byte[] data)
    {
        var stream = new MemoryStream(data);
        Assembly assembly = LoadAssembly(stream);
        var types = assembly.GetTypes();
        Type resultType = null;
        foreach (Type type in types)
        {
            foreach (Type interfaceType in type.GetInterfaces())
            {
                if (interfaceType.Equals(typeof(IQuestConfig)))
                {
                    resultType = type;
                    break;
                }
            }
        }
        var setupObject = (IQuestConfig)Activator.CreateInstance(resultType);
        var result = setupObject.SetQuest();
        return result;
    }
    private Assembly LoadAssembly(MemoryStream stream)
    {
        return AssemblyLoadContext.Default.LoadFromStream(stream);
    }

что мне дает если я гружу assembly при помощи AssemblyLoadContext

READ ALSO
Фильтр на столбец DataGrid WPF

Фильтр на столбец DataGrid WPF

Не могу понять как реализовать фильтр на столбце datagrid например как на картинке:

222
mono crash и debug

mono crash и debug

Вот логи https://pastebincom/ySpkqEKi

184