【问题标题】: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。
  • @Claies 我注意到了,但 4.6 只是完整的框架,没有核心。 MEF 没有出现在 corefx 存储库中,所以我不确定它是否包含在内。此外,该 NuGet 包列出仅在 .NET Framework 上受支持,但如果它在 PCL 中工作,我也许可以从 vNext/5 项目中引用它..

标签: c# asp.net .net mef .net-core


【解决方案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
  • 针对当前情况修改了答案。
猜你喜欢
  • 2021-02-25
  • 2010-09-13
  • 1970-01-01
  • 1970-01-01
  • 2016-02-17
  • 2018-11-02
  • 1970-01-01
  • 1970-01-01
  • 2020-10-07
相关资源
最近更新 更多