乱雑なMessenger.Default(...)
ビットがあるソフトウェアを改良しています。
MVVMLight SimpleIoc の使用法 (一般的な IoC の説明ではない) を知るためのチート シートはありますか?
乱雑なMessenger.Default(...)
ビットがあるソフトウェアを改良しています。
MVVMLight SimpleIoc の使用法 (一般的な IoC の説明ではない) を知るためのチート シートはありますか?
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 呼び出しに渡す必要があります。
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) オブジェクトを直接解決するには (ビルドアップと依存関係の解決を行います):
SimpleIoc.Default.GetInstance<MainViewModel>();
8) MVVM を使用すると、設計時のデータを非常に簡単に処理できます。
if (ViewModelBase.IsInDesignModeStatic)
{
SimpleIoc.Default.Register<IDataService, Design.DesignDataService>();
}
else
{
SimpleIoc.Default.Register<IDataService, DataService>();
}
デザインタイム モードの場合、デザインタイム サービスが自動的に登録されるため、VS デザイナーで作業するときにビューモデルとビューにデータを簡単に配置できます。
お役に立てれば。