.NET Core(或 ASP.NET 5)中是不是有 MEF 的替代品
Posted
技术标签:
【中文标题】.NET Core(或 ASP.NET 5)中是不是有 MEF 的替代品【英文标题】:Is there a replacement for MEF in .NET Core (or ASP.NET 5).NET Core(或 ASP.NET 5)中是否有 MEF 的替代品 【发布时间】:2015-05-02 07:18:19 【问题描述】:我们知道 .NET Core(开源组件)只是完整 .NET Framework 的一个子集,而 ASP.NET 5(和 MVC 6)是基于 .NET Core 构建的。这是否意味着托管可扩展性框架 (MEF) 在 ASP.NET 5 中不可用?
如果是,是否有任何替代 .NET Core 中可用的动态可扩展性?
我有许多使用 MEF 来动态加载插件和外部集成的应用程序,如果它们仅仅因为使用 MEF 而被锁定在 .NET Framework 中,那就太可惜了。
【问题讨论】:
.Net 4.6 预览版绝对支持 MEF。 你也可以使用nuget.org/packages/microsoft.composition @Claies 我注意到了,但 4.6 只是完整的框架,没有核心。 MEF 没有出现在 corefx 存储库中,所以我不确定它是否包含在内。此外,该 NuGet 包列出仅在 .NET Framework 上受支持,但如果它在 PCL 中工作,我也许可以从 vNext/5 项目中引用它.. 【参考方案1】:现有的 NuGet 包应该可以工作。它是可移植的,并且 .NET Core 是可移植 API 表面的向后兼容演变。 ASP.NET Core 不会自动安装它,但是因为包没有明确说明它与 .NET Core 兼容。
要安装该软件包,您需要将imports
部分添加到您的project.json
:
"dependencies":
"Microsoft.Composition": "1.0.30"
,
"frameworks":
"netcoreapp1.0":
"imports": "portable-net45+win8"
【讨论】:
哪个现有包?现在好像有好几个了。Microsoft.Composition
,但现在您可能需要将"imports": "portable-net45+win8"
添加到您的project.json
。
针对当前情况修改了答案。以上是关于.NET Core(或 ASP.NET 5)中是不是有 MEF 的替代品的主要内容,如果未能解决你的问题,请参考以下文章
通过 IIS ARR 的客户端关联/粘性会话是不是适用于 ASP.NET Core 3+/.NET 5?
ASP.NET Core 5.0.3 Hosting Bundle 是不是会影响已托管的 .Net 框架应用程序
ASP.NET Core Web API 应用程序是不是可能出现死锁或应用程序挂起状态