Я пытаюсь разработать редактор, такой как VS editor, где у меня есть такие компоненты, как FTP, TelNet (где вы перетаскиваете дизайнер и соединяете их друг с другом, изменяете свойства в PropertyGrid и т. Д.), А затем выполняете. Хорошая идея - использовать MEF для сканирования всех dll-ов, которые имеют интерфейс IComponent, а затем использовать отражение, чтобы получить исходный объект из dll-ов. Пример
[Export(typeof(ICOmponent))]
[MetadataExport("Name", "FTP")]
public class FTP : ICOmponent
{
public string Server { get; set; }
public void Start()
{
....ConectTOServer(Server);
}
}
[Export(typeof(ICOmponent))]
[MetadataExport("Name", "MessageBox")]
public class MessageBox : ICOmponent
{
public string Message { get; set; }
public void Start()
{
System.Windows.Forms.MessageBox.Show(Message);
}
}
public interface ICOmponent
{
void Start();
}
Или это другой способ получить исходный объект из MEF из ICOmponent, как из метаданных ... потому что PropertyGrid не нужен реальный объект для отображения свойств для FTP-сервера и сообщения MessageBox.
Извините за мой плохой английский.