.NET 中的 Composition ,即 MEF。MEF 说得简单一点,就是它可以在运行阶段动态地发现类型,用于组件扩展方面特别合适。
.NET Core App 的默认框架并不提供 MEF 有关的 API,但,别忘了 Nuget,那上面有相关的库,而且是官方发布的,不出意外的话,是能用的,而且老周也亲自测过,严重证实是可用的。
哦,是了,顺便提一下,如果你弄的是 ASP.NET Core 项目,对于组件扩展,你可以不必考虑用 Composition,因为 ASP.NET Core 有强大的依赖注入功能,所以,通过注入,也能做到动态发现组件的效果,而且集成性更好。
所以,所以嘛,咱们今天说的 Composition 主要是针对 .net core app,默认模板提供的是控制台应用程序,或者类库。当然了,也可能是其他类型的项目,而且开源项目将来也会多起来。
好了,上面说的都是闲话,咱们开始讲正话。
首先,你要先建一个 core 的项目,嗯,就选控制台应用吧。
建好项目之后,打开项目的 Nuget 管理器,搜索:
System.ComponentModel.Composition