Перегрузка чистой библиотеки классов интерфейса с помощью MEF - PullRequest
0 голосов
/ 11 октября 2019

Я пытаюсь модулировать часть моей кодовой базы в c #, создавая чисто интерфейсную библиотеку классов. Затем в моем основном приложении я хотел бы динамически загрузить DLL, которая будет зависеть от выбора пользователя. Эта dll должна реализовывать всю упомянутую библиотеку классов интерфейса.

Я ржавый, когда дело доходит до c # и не знаю, как это сделать правильно здесь.

Прямо сейчас яЯ статически связываю одну реализацию именованной библиотеки классов в основной программе, но, как я уже сказал, хотел, чтобы файлы DLL в моей папке расширений загружали ее полностью динамически. Как истинное расширение должно делать.

  public interface ISomeInterface {
    int CalculateSomethingNice();
    bool Load();
    bool Save();
  }

Допустим, я хочу две реализации всех интерфейсов, которые есть в моей библиотеке, в этом примере он имеет только ISomeInterface, в двух отдельных проектах, которые могут быть недоступны вмое решение, Extension1 и Extension2 (на более позднем этапе загружается с: extension1.dll и extension2.dll)

Как это правильно сделать в c #?

[Редактировать] Я нашел три отличных поста в блоге, которые соответствуют моему сценарию использования, как перчатка, поэтому поделитесь ими здесь на случай, если кому-то еще понадобится подобное введение:

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