[英]Using MEF in an editor
我试图开发像VS编辑器这样的编辑器,在其中我处理了FTP,TelNet(在其中拖放设计器并将它们彼此连接在一起,在PropertyGrid中更改属性)等组件,然后执行。 最好使用MEF扫描具有接口IComponent的所有dll-s,然后使用反射从dll-s获取原始对象。 例
[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();
}
或者是从ICOmponent从MEF获取原始对象的另一种方法,例如从Metadata ..,因为PropertyGrid不需要用于显示FTP服务器和来自MessageBox消息的属性的真实对象。 对不起,我的英语不好。
你的写作出现一般有足够的了解MEF从微软的Mike Taulty这一系列影片可能会有所帮助:“ 迈克Taulty在SL4学习一下MEF ”; 观看此系列节目不会浪费您的时间。
您可能希望阅读有关MEF的文章。
为了使MEF
正常工作,应用程序上放置的任何程序集/ dll必须实现Exports
。 如果没有,您将无法Import
任何内容。
要使用没有任何导出的Assembly / dll,请使用反射来搜索实现IComponent
类型。 并使用Activator
类根据其类型信息创建实例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.