60 votes

Meilleur tutoriel pour apprendre à utiliser MVVMLight SimpleIoc?

Je réorganise mon logiciel qui contient Messenger.Default(...) bits en désordre.

Existe-t-il un tutoriel pour apprendre à utiliser MVVMLight SimpleIoc (pas une description générale de l'IoC)? Les tutoriels généraux sur les modèles Ioc ont des noms différents, ce qui est difficile à suivre.

À votre santé

145voto

Faster Solutions Points 3657

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.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X