SimpleIoc feuille de crèche:
1) vous Vous inscrivez toutes vos interfaces et des objets dans le 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) Chaque objet est un singleton par défaut. Pour résoudre un objet de sorte qu'il n'est pas un singleton, vous devez passer une valeur unique pour la GetInstance composez le:
SimpleIoc.Default.GetInstance<MainViewModel>(Guid.NewGuid().ToString());
3) Pour inscrire une classe à l'encontre d'une interface:
SimpleIoc.Default.Register<IDataService, Design.DesignDataService>();
4) Pour enregistrer un objet concret à l'encontre d'une interface:
SimpleIoc.Default.Register<IDataService>(myObject);
5) Pour enregistrer un type de béton:
SimpleIoc.Default.Register<MainViewModel>();
6) Pour résoudre un objet à partir d'une interface:
SimpleIoc.Default.GetInstance<IDataService>();
7) Pour résoudre directement un objet (ne l'accumulation et de la résolution des dépendances):
SimpleIoc.Default.GetInstance<MainViewModel>();
8) MVVM, faire des données de conception très facile:
if (ViewModelBase.IsInDesignModeStatic)
{
SimpleIoc.Default.Register<IDataService, Design.DesignDataService>();
}
else
{
SimpleIoc.Default.Register<IDataService, DataService>();
}
Si vous êtes dans la conception de la mode de temps il va automatiquement enregistrer vos services de conception, de décision, il est vraiment facile d'avoir des données dans votre viewmodel et points de vue lorsque l'on travaille dans le VS designer.
Espérons que cette aide.