在.NET Core(或ASP.NET 5)中是否有MEF的替代品

时间:2015-03-02 01:09:43

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

我们知道.NET Core(开源组件)只是完整.NET Framework的一个子集,而ASP.NET 5(和MVC 6)是基于.NET Core构建的。这是否意味着ASP.NET 5中没有Managed Extensibility Framework(MEF)?

如果是这样,.NET Core中是否有可用的动态可扩展性替换?

我有许多使用MEF来动态加载插件和外部集成的应用程序,如果他们因为使用MEF而被锁定在.NET Framework中,那将是一个遗憾。

1 个答案:

答案 0 :(得分:7)

现有的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"
    }
  }
}