您的位置:首页 > 其它

关于MEF的一些简单的说明

2014-03-25 14:24 218 查看
刚刚看了一下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();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  MEF