2015-03-02 22 views
11

'da MEF'nin yerini aldığını biliyoruz .NET Core'un (açık kaynaklı bileşenler) yalnızca .NET Framework'ün bir alt kümesi olduğunu ve ASP.NET'in 5 olduğunu biliyoruz (ve MVC 6) .NET Core üzerinde yerleşiktir. Bu, Yönetilen Genişletilebilirlik Çerçevesinin (MEF) ASP.NET 5'te kullanılabilir olmadığı anlamına mı geliyor?.NET Çekirdeği (veya ASP.NET 5)

Öyleyse, .NET Core'da kullanılabilir dinamik genişletilebilirlik için herhangi bir değiştirme var mı?

Eklentileri ve harici tümleştirmeleri dinamik olarak yüklemek için MEF kullanan bir çok uygulamaya sahibim ve yalnızca MEF kullanmaları nedeniyle .NET Framework'e kilitlendiklerinde üzücü olurdu.

+2

MEF kesinlikle .Net 4.6 Önizleme desteklenir. – Claies

+1

ayrıca büyük olasılıkla http://www.nuget.org/packages/microsoft.composition – Claies

+0

@Claies'i de kullandığınızı fark ettim, ancak 4.6 sadece tam çerçeve, Çekirdek değil. MEF corefx repoda görünmüyor, bu yüzden içerildiğinden emin değilim. Ayrıca, bu NuGet paketi yalnızca .NET Framework'te desteklendiği gibi listelenir, ancak bir PCL'de çalışıyorsa, bunu bir VNext/5 projesinden kaynaklanabilirim .. – agc93

cevap

7

Varolan NuGet paketi çalışmalıdır. Taşınabilir ve .NET Core, taşınabilir API yüzeyinin geriye dönük uyumlu bir evrimidir. ASP.NET Core bunu otomatik olarak yüklemez, ancak paket açıkça .NET Core ile uyumlu olduğunu söylemez.

paketini yüklemek için, sizin project.json bir imports bölüm eklemek gerekir:

{ 
    "dependencies": { 
    "Microsoft.Composition": "1.0.30" 
    }, 
    "frameworks": { 
    "netcoreapp1.0": { 
     "imports": "portable-net45+win8" 
    } 
    } 
} 
+1

* Hangi * varolan paket? Şimdiye kadar birkaç tane var gibi görünüyor. – SamB

+0

'Microsoft.Composition', ancak şu an' project.json' için '' imports '': '' portable-net45 + win8 ''' i eklemeniz gerekebilir. – bricelam

+1

Mevcut şeylerin durumu için gözden geçirilmiş yanıt. – bricelam