简单的MEF例子

MEF(Managed Extensibility Framework)是微软推出的用于开发基于插件程序的应用框架,网址为CodePlex MEF Site.在园子里有不少文章,可能是鄙人水平有限,虽然懵懂,但是如何实现即插即用的应用程序还是很模糊,终于在http://www.codeproject.com/KB/silverlight/SilverlightMEFGuidePart1.aspx看到了这位印度兄的文章,图文并茂,很容易理解,在此把自己的开发过程写下来备忘。

一,运行环境:vs2010,.net framework4.0

二,示例工程包括下图,

CommonInterface工程定义部件的公共接口,

CustomPerson和EmployPerson为部件工程,分别引用CommonInterface类库,实现公共接口,

Demo工程为主程序。

Snap1

三:部件接口定义:

Snap2

四:实现接口,用Export(typeof(IPerson))标示该类可导出

   Snap3

 Snap4  

五:

    1,定义导入部件

        [ImportMany(typeof(Iperson))]

        public IPerson[] Service{get;set;}

    2,定义部件目录:

        var catalog=new DirectoryCatalog(@”.\”);

    3,创建宿主容器;

        var container=new CompositionContainer(catalog);

    4,拼装部件:

        container.ComposeParts(this);

    5,调用接口方法:

        foreach(var aa in p.Service)

{

          aa.show();

}

完整代码如下:

Snap5

原文地址:https://www.cnblogs.com/malingbo/p/2125279.html