繁体   English   中英

在编辑器中使用MEF

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM