关于MEF的一些简单的说明

来源:互联网 发布:柊筱娅cos淘宝 编辑:程序博客网 时间:2024/05/20 15:11

刚刚看了一下MEF的一些示例, 网上的教程太复杂, 理解起来有些麻烦. 经过阅读别人的代码, 把自己的理解记录一下, 方便以后使用.

MEF能干什么?

首先回答这个问题, MEF可以将两个对象组合到一起, 这里的对象可以是变量, 类, 属性等. 然后用一个对象对替换另一个对象.

比如说: 在class StringProvider中, 有属性Output,   而在class Client中要使用Output的值. 使用MEF就可以方便的将StringProvider中的Output拿到Client这个类中使用.

而如何去组合使用就是MEF做的事情.


代码说明

下面的代码中, 定义为[Export("Message")]的Output就是将要被其它地方所使用的属性.

[Import("Message")]中Import是说明, private string message的这个变量将会使用Export中Output的值.

"Message"所代表的意思是匹配的字符串, 用于指定一对Export和Import.

 public class StringProvider    {        [Export("Message")]        public string Output        {            get { return "Hello MEF Framework"; }        }    }    public class Client    {        [Import("Message")]        private string message = null;        public void Print()        {            Console.WriteLine(this.message);            Console.ReadLine();        }    }

让MEF组装吧

                Client client = new Client();                CompositionContainer container = new CompositionContainer();                CompositionBatch batch = new CompositionBatch();                batch.AddPart(new StringProvider()); //将被组装对象放入.                batch.AddPart(client); //将组装对象放放                container.Compose(batch); //MEF对象根据Export和Import的定义自动的实现替换操作                client.Print();



0 0
原创粉丝点击