日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > asp.net >内容正文

asp.net

在.NET Core中使用MEF

發(fā)布時(shí)間:2023/12/4 asp.net 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在.NET Core中使用MEF 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

題記:微軟的可托管擴(kuò)展框架也移植到.NET Core上了。

可托管擴(kuò)展框架(Managed Extensibility Framework,MEF)是微軟為大型應(yīng)用程序(比如Visual Studio這樣的東西)提供的一個(gè)功能擴(kuò)展框架,通過(guò)一個(gè)混合層提升了靈活性、維護(hù)性和可測(cè)試性。MEF既可以用于第三方插件支持?jǐn)U展功能(我曾經(jīng)開(kāi)發(fā)的eBalance就是使用MEF實(shí)現(xiàn)插件功能),也能為常見(jiàn)的應(yīng)用程序帶來(lái)松耦合插件架構(gòu)的好處。MEF最早是作為一個(gè)開(kāi)源的擴(kuò)展庫(kù)發(fā)布,后來(lái)直接融合到.NET Framework中一起發(fā)布,所謂的命名空間(System.*.Composition)就是它了。

當(dāng)然,由于歷史原因,MEF現(xiàn)存兩個(gè)版本:

  • 一個(gè)是同.NET 4.0和Silverlight 4及其更高版本內(nèi)置的,命名空間為System.ComponentModel.Composition。這個(gè)版本提供了標(biāo)準(zhǔn)的擴(kuò)展模型,也是VS使用的。

  • 另外一個(gè)是通過(guò)Nuget發(fā)布的輕量級(jí)的支持可移植的版本,針對(duì)靜態(tài)混合進(jìn)行了優(yōu)化,提供了更快的混合過(guò)程,你可以認(rèn)為這是MEF2,命名空間是System.Compostion,可以被用于手機(jī)、商店應(yīng)用、桌面和Web應(yīng)用之中。

  • 而現(xiàn)在移植到.NET Core的版本只是MEF2(這是理所當(dāng)然的),沒(méi)有Catalog可用,源代碼在此:https://github.com/dotnet/corefx/tree/master/src。

    要使用MEF也很簡(jiǎn)單,直接通過(guò)Nuget添加就行:http://www.nuget.org/packages/Microsoft.Composition/

    如果只是想自動(dòng)加載Assembly的話(huà),.NET Core雖然沒(méi)有再提供AppDomain還是提供了類(lèi)似概念的東西,即AssemblyLoadContext。不過(guò)動(dòng)態(tài)加載程序集在.NET Native下可能會(huì)有問(wèn)題,因?yàn)椴](méi)有JIT的存在。

    如何在.NET Core中使用MEF的具體代碼,可以參考Ricardo Peres的博文:http://weblogs.asp.net/ricardoperes/using-mef-in-net-core

    內(nèi)容轉(zhuǎn)載自公眾號(hào)

    dotNET每日精華文章 了解更多

    總結(jié)

    以上是生活随笔為你收集整理的在.NET Core中使用MEF的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。