Есть ли замена для MEF в .NET Core (или ASP.NET 5)
Мы знаем, что .NET Core (компоненты с открытым исходным кодом) являются лишь подмножеством полной .NET Framework и что ASP.NET 5 (и MVC 6) построен на .NET Core. Означает ли это, что Managed Extensibility Framework (MEF) недоступна в ASP.NET 5?
Если да, есть ли замена для динамической расширяемости, доступная в .NET Core?
У меня есть несколько приложений, которые используют MEF для динамической загрузки плагинов и внешних интеграций, и было бы очень жаль, если бы они были заблокированы в .NET Framework только потому, что они используют MEF.
Ответы
Ответ 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"
}
}
}