Задать вопрос
Morpheus_God
@Morpheus_God

Подмена реализации интерфейса без перекомпиляции проекта. Как реализовать?

Добрый день. Каким образом можно подменять реализацию функционала в готовой программе?
Приведу пример. У меня есть интерфейс:
public interface IMessage
    {
        string GetMessage();
    }

Есть класс который его реализует:
public class Message : IMessage
    {
        public string GetMessage()
        {
            return "Hello From Message Class";
        }
    }

Есть форма которая создает переменную класса и выводит результат работы метода в MessageBox:
public partial class Form1 : Form
    {
        private readonly IMessage m;

        public Form1()
        {
            InitializeComponent();
            m = new Message();
        }

        private void Clickbtn_Click(object sender, EventArgs e)
        {
            MessageBox.Show(m.GetMessage());
        }
    }

Меня же интересует следующее, к примеру у меня класс который реализует интерфейс будет в отдельной dll библиотеке.
И мне захотелось иначе реализовать интерфейс. И что бы я мог просто создать новую dll библиотеку и положить в папку с программой. Возможно ли такое? Получается мне что то на подобии создания плагинов надо. При помощи какой технологии можно подобное сделать?
Заранее спасибо за ответы.
  • Вопрос задан
  • 263 просмотра
Подписаться 2 Простой Комментировать
Решение пользователя Станислав Макаров К ответам на вопрос (3)
Nipheris
@Nipheris Куратор тега C#
Получается мне что то на подобии создания плагинов надо. При помощи какой технологии можно подобное сделать?

Managed Extensibility Framework (MEF)
Ответ написан
Комментировать