У меня есть проект 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;
}
}
}
}
Ваш опыт поможет мне решить проблему, с которой я столкнулся здесь.