C#编程之MEF1

一 简介

     MEF全称为:ManagedExtensibility Framwork, 是.NET的一个插件框架;编写完一个应用程序,可以通过插件的方式来扩展。

二 MEF的体系结构

   有关介绍MEF体系结构部分,个人感觉C#高级编程一书中描述的最好。MEF通过容器与部件构建的,如图所示。容器在类别中查找部件,类别则在程序集或者目录中查找部件,容器则把入口连接到出口,寄宿应用程序则在容器出口调用部件。

                                  

三 一个简单的MEF程序

   为了是宿主程序与插件程序彼此独立,这里需要建立3个程序集。一个为接口程序集,连接宿主程序与插件程序集,在此程序集中,定义插件程序集中实现的方法、属性等;一个为插件程序集,实现接口程序集中定义的方法、属性等;宿主程序直接引用接口程序集。

   这个小程序实现在控制台打印用户信息,接口程序集(IUserInfoContract.dll),插件程序集(SimpleUserInfo.dll)、宿主程序(MEFTest1.exe),此程序是使用特性{import、export}

完后的MEF。

   接口程序集:新建类库,定义一个接口IUserInfo (IUserInfo.cs):

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

 namespace Plug

{

    publicinterfaceIUserInfo

    {

        string showUserInfo(string name,string UserNumber);

    }

}

 插件程序集:新建类库,实现IUserInfo定义的showUserInfo方法。

注意:工程调加引用,System.ComponentModel.Composition(SimpleUserInfo.cs)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值