最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

.Net插件框架Managed Extensibility Framework簡介

 更新時間:2022年07月07日 15:31:40   作者:天方  
這篇文章介紹了.Net插件框架Managed Extensibility Framework,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

Managed Extensibility Framework(MEF)是微軟的一個用來擴展.NET應(yīng)用程序的框架,它最初為了滿足Visual Studio里的編輯器的需求,比如說,延遲加載所有東西和細粒度協(xié)定。隨著托管代碼慢慢地取代基于COM的擴展模型,MEF框架也逐漸成型。

MEF是在Codeplex上開源的,并且現(xiàn)在已經(jīng)是.Net 4.0的一部分。我們可以用它非常容易的實現(xiàn)插件框架。一個簡單的示例如下(使用時需要添加System.ComponentModel.Composition.dll 的引用): 

    class Program
    {
        [Import]
        ILogger logger;

        void Compose()
        {
            var catalog = new AssemblyCatalog(this.GetType().Assembly);
            var container = new CompositionContainer(catalog);
            container.ComposeParts(this);
        }

        public static void Main(string[] args)
        {
            var p = new Program();
            p.Compose();

            p.logger.LogMessage("hello world");
        }
    }

    interface ILogger
    {
        void LogMessage(string msg);
    }

    [Export(typeof(ILogger))]
    class ConsoleLogger : ILogger
    {

        public void LogMessage(string msg)
        {
            Console.WriteLine(DateTime.Now + ": " + msg);
        }
    }

這個例子比較簡單,并不能很好的體現(xiàn)MEF帶來的便利,MS官方的一個稍微復(fù)雜點的例子SimpleCalculator更合適一些。

不過,從這個例子中也可以看出MEF的基本工作方式:服務(wù)方通過ExportAttribute導(dǎo)出可提供的服務(wù),使用者通過ImportAttirbute導(dǎo)入所需要的服務(wù)。它們之間彼此隔離而獨立,服務(wù)對象的創(chuàng)建由MEF框架完成,并能提供單例、延遲加載等特性,而無須我們顯式編碼實現(xiàn)。

到此這篇關(guān)于.Net插件框架Managed Extensibility Framework的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

兰考县| 轮台县| 微山县| 阿克陶县| 泽州县| 治县。| 平果县| 德安县| 新邵县| 新泰市| 克山县| 扎兰屯市| 垫江县| 丹寨县| 漳浦县| 瑞昌市| 会泽县| 肇州县| 安义县| 晋城| 甘南县| 高台县| 宜兰县| 彭泽县| 晋州市| 高尔夫| 信宜市| 澄江县| 青田县| 哈尔滨市| 克拉玛依市| 星座| 天全县| 田林县| 青河县| 左云县| 通海县| 和平区| 呈贡县| 柳江县| 伊金霍洛旗|