Загрузите определенный класс из DLL в C # - PullRequest
0 голосов
/ 11 февраля 2019

Я хочу загрузить только некоторые классы из данной библиотеки.Проблема заключается в следующем:

У меня есть следующие файлы DLL.

Dll 1:

Пространство имен:

  • Класс 1
  • Класс 2

Dll 2:

Пространство имен:

  • Класс 2
  • Class 3

Как показано в приведенном выше примере, возможно и вероятно, что у меня есть 2 или более dll с одинаковыми классами в нем.(Обратите внимание, что пространства имен одинаковы)

Теперь я подумал о следующем:

  • Откройте dll в Temp AppDomain
  • Проверьте, какие классы мы не делаемзнать
  • Переместить необходимые классы в стандартный домен приложений
  • Выгрузить временный домен приложений

Есть ли способ сделать что-то подобное?

1 Ответ

0 голосов
/ 11 февраля 2019

У вас есть два разных файла DLL.Таким образом, вы можете импортировать два разных файла DLL в ваш проект C #.Например, имя первого файла DLL - «File1», а имя второго файла DLL - «File2»

const string file1_Dll_Path = @"File1.dll";
const string file2_DllPath = @"File2.dll";
[DllImport(file2_DllPath, CallingConvention = CallingConvention.Cdecl)]
    public static extern int YOURFUNCTIONINFILE2DLL();
[DllImport(file1_Dll_Path, CallingConvention = CallingConvention.Cdecl)]
    public static extern void YOURFUNCTIONINFILE1DLL();

Примечание. Не забудьте добавить «небезопасную» форму C #.Как это

unsafe public partial class FORMNAME : Form
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...