第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用MVVMLight SimpleIoc?

如何使用MVVMLight SimpleIoc?

C#
瀟瀟雨雨 2019-11-08 10:31:07
我正在對軟件進行升級,該軟件有些混亂Messenger.Default(...)。是否有任何備忘單來了解MVVMLight SimpleIoc的用法(不是一般的IoC描述)?
查看完整描述

2 回答

?
一只萌萌小番薯

TA貢獻1795條經(jīng)驗 獲得超7個贊

SimpleIoc嬰兒床床單:


1)您在ViewModelLocator中注冊了所有接口和對象


class ViewModelLocator 

    static ViewModelLocator() 

    {         

        ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default);          

        if (ViewModelBase.IsInDesignModeStatic) 

        {              

            SimpleIoc.Default.Register<IDataService, Design.DesignDataService>();          

        }          

        else         

        {              

            SimpleIoc.Default.Register<IDataService, DataService>();          

        }          

        SimpleIoc.Default.Register<MainViewModel>();                  

        SimpleIoc.Default.Register<SecondViewModel>(); 

    }      



    public MainViewModel Main 

    {  

        get  

        {      

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

        } 

    }

2)默認情況下,每個對象都是單例。要解析對象以使其不是單例,您需要將唯一值傳遞給GetInstance調(diào)用:


SimpleIoc.Default.GetInstance<MainViewModel>(Guid.NewGuid().ToString());

3)要針對接口注冊類:


SimpleIoc.Default.Register<IDataService, Design.DesignDataService>();  

4)要針對接口注冊具體對象:


SimpleIoc.Default.Register<IDataService>(myObject);     

5)要注冊具體類型:


SimpleIoc.Default.Register<MainViewModel>();   

6)要從接口解析對象:


SimpleIoc.Default.GetInstance<IDataService>();

7)直接解析對象(建立和依賴關(guān)系解析):


SimpleIoc.Default.GetInstance<MainViewModel>();

8)MVVM使設(shè)計時數(shù)據(jù)的確非常容易:


if (ViewModelBase.IsInDesignModeStatic) 

{              

    SimpleIoc.Default.Register<IDataService, Design.DesignDataService>();          

}          

else         

{              

    SimpleIoc.Default.Register<IDataService, DataService>();          

}  

如果您處于設(shè)計時模式,它將自動注冊您的設(shè)計時服務(wù),這使得在VS設(shè)計器中工作時在視圖模型和視圖中存儲數(shù)據(jù)變得非常容易。


希望這可以幫助。


查看完整回答
反對 回復 2019-11-08
?
浮云間

TA貢獻1829條經(jīng)驗 獲得超4個贊

1)我發(fā)現(xiàn)SimpleIoc拋出設(shè)計時異常,因為服務(wù)已經(jīng)注冊。如果我檢查IsRegistered,然后在我的視圖模型中引用SimpleIoc,則不會顯示設(shè)計時數(shù)據(jù)(不會引發(fā)異常,只是不顯示)。如果刪除SimpleIoc并手動創(chuàng)建數(shù)據(jù),那么它將在設(shè)計時顯示出來。因此,不,我認為這“真的很簡單” :)請注意,數(shù)據(jù)服務(wù)在設(shè)計時間之外工作良好。

查看完整回答
反對 回復 2019-11-08
  • 2 回答
  • 0 關(guān)注
  • 1179 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號