.Net4下的MEF(Managed Extensibility Framework) 架构简介

本文探讨了在.NET4平台上使用MEF(Managed Extensibility Framework)代替Prism实现动态组件扩展的过程。文章提及了OpenExpressApp框架在升级到.NET4后遇到的问题,特别是内存泄露和compositewpf的局限性,从而转向MEF作为插件机制。文中还简要介绍了MEF的主要组成部分和工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   在上篇WPF -.Net 4.0解决了DataGrid分组时的内存泄露中说过由于内存泄露问题,OpenExpressApp升级到.Net4平台,然后升级后之前的compositewpf出了点问题。在OpenExpressApp考虑动态扩展组件机制方面,以前就考虑过MEF,但当时还不成熟,所以使用了compositewpf,而现在MEF已经成为了.Net第一公民,compositewpf又没有提供.Net4的版本,也很久没有升级了,也不明确它的发展方向,并且现在软件中有些内存泄露问题也与它有关,所以干脆使用MEF作为插件机制。这里把这两个一起提出,主要是从动态扩充组件来说的,它们实际上不是一个东西,可以并存的,在这里就不多说这些了,下面我主要介绍一下MEF的架构,希望从总体上有所了解,更改OpenExpressApp后我会再写篇文章介绍一下如何在OpenExpressApp中使用MEF的。

各种Export提供者从目录提取part信息,然后由CompositionContainer进行装配,其中每个part都包含Import和Export两部分内容。

2010052109511846.png

主要组成图

由容器、基础类库和属性编程模型组成,组成东西其实不多,要想扩充自己的东西必须熟悉这些东西。

我现在只是想用MEF替代Prsim实现插件扩充机制,由于时间紧张也不能深入研究,所以目前也就是使用过其中一些类,如:CompositionContainer、CompositionBatch、AssemblyCatalog、DirectoryCatalog和属性标记等,后面我会具体将从Prsim更改为MEF的。

2010052417125339.jpg

2010052109233025.png

主要类图

2010052109243266.jpg

具体内容可以参考:

Hosting the .NET Composition Primitives.pdf

 

其它

参考blog:

A Crash Course on the MEF Primitives

MEF: Dependencies are Queries?

Hosting the .NET Composition Primitives.pdf

在 .NET 4 中使用托管可扩展性框架构建可组合的应用程序

MSDN-Managed Extensibility Framework Overview

 

项目网站:

Managed Extensibility Framework 

Managed Extensibility Framework  Contrib 

 

开源信息系统开发平台之OpenExpressApp框架 1.1 春节飞虎版发布

欢迎转载,转载请注明:转载自周金根 [ http://zhoujg.cnblogs.com/ ]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值