91手机视频在线-91手机视频在线观看-91手机在线-91手机在线播放-91手机在线观看

完善主體資料,免費贈送VIP會員!
* 主體類型
* 企業(yè)名稱
* 信用代碼
* 所在行業(yè)
* 企業(yè)規(guī)模
* 所在職位
* 姓名
* 所在行業(yè)
* 學歷
* 工作性質
請先選擇行業(yè)
您還可以選擇以下福利:
行業(yè)福利,領完即止!

下載app免費領取會員

NULL

ad.jpg

二次開發(fā)教程:C# 通過MVVMLight探索IOC

發(fā)布于:2019-07-25 15:19:58

網友投稿

更多

使用MVVMlight創(chuàng)建一個項目以后,MainViewModel的構造函數(shù)是這樣的:


        public MainViewModel(IDataService dataService)

        {

            _dataService = dataService;

            _dataService.GetData(

                (item, error) =>

                {

                    if (error != null)

                    {

                        // Report error here

                        return;

                    }

                    WelcomeTitle = item.Title;

                });

        }


它依賴于一個實現(xiàn)了IDataService 的類,但是在使用的時候,代碼確實這樣的:


        public MainViewModel Main

        {

            get

            {

                return ServiceLocator.Current.GetInstance<MainViewModel>();

            }

        }


如果我們按照一般邏輯來寫,應該是寫成這樣:


        public MainViewModel Main

        {

            get

            {

                IDataService service = new DataService();//這是一個實現(xiàn)了IDataService 的類

                return new MainViewModel(service);

                //return ServiceLocator.Current.GetInstance<MainViewModel>();

            }

        }


那這是怎么回事呢?


在使用這個ViewModel之前SimpleIoc.Default還做了兩件事:


SimpleIoc.Default.Register<IDataService, DataService>();//這個就應該是所謂的依賴注入,DataService是要創(chuàng)建MainViewModel需要的一個參數(shù),一個依賴項


SimpleIoc.Default.Register<MainViewModel>();



而ServiceLocator.Current.GetInstance<MainViewModel>();


所做的是使用MainViewModel的 ConstructorInfo來創(chuàng)建(第一次Get的時候創(chuàng)建),而調用 ConstructorInfo的時候,我們會發(fā)現(xiàn)它需要一個參數(shù),而這個參數(shù)的class


的構造函數(shù)是沒有參數(shù)的,應為我們之前做過Register操作,所以可以通過Register時候傳的接口和類,來找到這個類,并使用反射來創(chuàng)建一個對象供MainViewModel的


ConstructorInfo來使用,而創(chuàng)建好的MainViewModel會保存在SimpleIoc.Default里,下次使用就不必重新創(chuàng)建(這個應該是服務定位器模式)

本文版權歸腿腿教學網及原創(chuàng)作者所有,未經授權,謝絕轉載。

未標題-1.jpg

上一篇:二次開發(fā)教程:MVVMLight的Messenger

下一篇:二次開發(fā)教程:C# udp小程序

主站蜘蛛池模板: 最新在线观看精品国产福利片 | 国产美女在线播放 | 免费一级a毛片在线搐放正片 | 欧美视频 亚洲视频 | 亚洲国产片高清在线观看 | 免费看一级特黄a大片 | 国产秦先生大战白丝97在线 | 国产第一区精品视频ai换脸 | 猫咪视频成人永久免费观看 | 免费播放aa在线视频成人 | 欧美另类网 | 国产欧美国产精品第一区 | 一级亚洲 | 亚洲精品福利在线 | 九九九九热精品免费视频 | 欧美在线性视频 | 国产成人 免费观看 | 中文字幕日韩专区 | 国产成人亚洲精品一区二区在线看 | 日本黄色美女视频 | 国产久热香蕉在线观看 | 国产在线99| 草草草视频在线观看 | 天天综合天天影视色香欲俱全 | 成年大片免费播放视频人 | 欧美顶级黄色大片免费 | 免费a级毛片在线观看 | 国内精品视频在线播放一区 | 午夜精品久久久久久久第一页 | 一区二区视频在线观看 | 国产最强大片免费视频 | 黄色不卡视频 | 国内精品久久久久影院不卡 | 在线观看毛片视频 | sese日本 | 久久99精品久久久久久久不卡 | 国产欧美日韩另类 | 亚洲一区图片 | 欧美日韩国产在线观看一区二区三区 | 久久久日本精品一区二区三区 | 欧美综合在线播放 |