Как читать определение частей сборки из AssemblyCatalog

У меня есть проект C #, работающий как на .NET framework 4.6.2, так и на .NET core 3.1 с наиболее распространенным кодом. При работе в .NET framework он загружает определение сборки и ее частей из пути к бину x86, используя класс AssemblyCatalog. Но когда код запускается в .NET Core, который загружает сборки из netstandard2.0, здесь определение частей пусто и получает только информацию о сборке (если API недоступен в ядре и стандарте, как я могу получить сборку информация в первую очередь?).

Изображение: загрузка деталей из сборки каркаса

Изображение: детали не загружаются из основной сборки

Я использую AssemblyCatalog (пространство имен: System.ComponentModel.Composition.Hosting) для инфраструктуры Net, но из браузера Micrososft .NET API этот управляемый API недоступен в стандарте .NET core / .NET.

Если этот API не перенесен в Core, как я могу хотя бы увидеть информацию о сборке? Может ли кто-нибудь помочь мне получить определение деталей из сборки в ядре .NET. Ниже приведен пример кода проекта .NET Core, который я сейчас пытаюсь выполнить.

using System;
using System.Reflection;
using System.ComponentModel.XXXXXX

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            // path to dll: F:/projFolder/bin/x86/debug/netstandar2.0/*.dll
            // catalog should return both Assembly information and Parts
            SafeAssemblyCatalog catalog = new SafeAssemblyCatalog("path to dll");
        }

        internal class SafeAssemblyCatalog : AssemblyCatalog //<== cant inherit 
        {
            private bool _isAssemblyLoad;

            public SafeAssemblyCatalog(string dllPath) : base(Assembly.LoadFrom(dllPath))
            {
                _isAssemblyLoad = true;
            }
        }
    }
}

Ваш опыт поможет мне решить проблему, с которой я столкнулся здесь.


comment
Взгляните на сборку класс.   -  person Alessandro D'Andria    schedule 09.06.2021
comment
Привет, @ AlessandroD'Andria, спасибо за комментарий, но как здесь в моей ситуации помогает класс Assembly. Не могли бы вы уточнить, как можно использовать его для получения сборочных частей для приложения .NET core, спасибо :)   -  person SSA    schedule 09.06.2021
comment
Если мои «части» вы имеете в виду, что типы, определяемые сборкой, вы можете просто получить с помощью переменной сборки.GetTypes (), чтобы получить коллекцию типов, которые определяет сборка.   -  person DekuDesu    schedule 09.06.2021
comment
@DekuDesu, да, GetTypes () возвращает все доступные определенные типы, но где определение частей является определением каталога составных частей, которое отличается для определенных типов. Понятия не имею, как он возвращает эти части. Если вы видите изображение в вопросе, оно возвращает 14 частей, в которых количество определенных типов превышает 500. Я новичок в этих вещах, и мне трудно понять. пожалуйста, простите меня, если я четко не объяснил, что мне здесь нужно! :)   -  person SSA    schedule 09.06.2021
comment
AssemblyCatalog / MEF доступен в .NET Core, но его библиотека (System.ComponentModel.Composition) поставляется в виде пакета NuGet, а не реализована в «стандартном» наборе сборок, поставляемых с Core. См. этот вопрос и ответьте для получения дополнительной информации.   -  person Sean Skelly    schedule 17.07.2021