Quelqu'un peut m'expliquer de Microsoft à l'Unité?
J'ai lu les articles sur MSDN sur l'Unité d'Injection de Dépendance, l'Inversion de Contrôle), mais je pense que j'ai besoin d'elle expliqué en termes simples (ou de simples exemples). Je suis familier avec les MVPC modèle (nous utilisons ici), mais je ne peux pas vraiment saisir cette Unité, chose encore, et je pense que c'est la prochaine étape dans notre conception de l'application.
- J'aime la façon dont cela a le même nom que celui de "l'Unité", alors quand je suis à la recherche de l'Unité du Moteur de Jeu les trucs que je vois cette ancienne technologie, soupir. Tous les bons noms de bandes sont prises, je guesss.
- Ancienne technologie? nuget.org/packages/Unity - dernière mise à jour il y a 5 jours.
Vous devez vous connecter pour publier un commentaire.
L'unité est juste un Cio "conteneur". Google StructureMap et de l'essayer à la place. Un peu plus facile à analyser, je pense que, lorsque le Cio choses est nouveau pour vous.
En gros, si vous comprenez Cio alors, vous comprenez que ce que vous faites est de l'inversion de la commande lorsqu'un objet est créé.
Sans Cio:
Avec conteneur IoC:
Sans Cio, votre classe qui s'appuie sur la IMyService a à nouveau une version concrète du service à utiliser. Et ce qui est mauvais pour un certain nombre de raisons (que vous avez couplé votre classe à une version concrète de la IMyService, vous pouvez pas test unitaire facilement, vous ne pouvez pas le changer facilement, etc.)
Avec un conteneur IoC vous "configurer" le conteneur pour résoudre ces dépendances pour vous. Donc, avec un constructeur basé sur l'injection de régime, vous venez de passer à l'interface de la IMyService dépendance dans le constructeur. Lorsque vous créez le MyClass avec votre conteneur, le conteneur va résoudre le IMyService dépendance pour vous.
À l'aide de StructureMap, la configuration du conteneur ressemble à ceci:
Donc, ce que vous avez fait est dit le conteneur des, "Quand quelqu'un demande de l'IMyService, de leur donner une copie de la SomeConcreteService." Et vous avez également précisé que lorsque quelqu'un demande un MyClass, ils obtiennent un béton MyClass.
C'est tout un conteneur IoC fait vraiment. Ils peuvent faire plus, mais c'est la poussée de celui - ci- ils résoudre des dépendances pour vous, donc vous n'avez pas à (et vous n'avez pas à utiliser le "nouveau" mot-clé tout au long de votre code).
Dernière étape: lorsque vous créez votre MyClass, vous voulez faire cela:
Espère que ça aide. N'hésitez pas à e-mail moi.
J'ai juste regardé les 30 minutes de l'Unité d'Injection de Dépendance Cio Screencast par David Hayden et senti que c'était une bonne explication avec des exemples. Voici un extrait de l'émission de notes:
La vidéo montre plusieurs usages communs de l'Unité du Cio, tels que:
L'unité est une bibliothèque comme beaucoup d'autres, qui vous permet d'obtenir une instance d'un type demandé, sans avoir à les créer vous-même. Donc, étant donné.
Vous devez utiliser une bibliothèque comme Unité pour vous inscrire Calculatrice pour être renvoyée lorsque le type ICalculator est demandé aka IoC (Inversion of Control) (cet exemple est théorique, n'est pas techniquement correct).
Alors maintenant, quand vous voulez une instance d'un ICalculator vous...
Cio bibliothèques peuvent généralement être configurés de manière à maintenir un singleton ou créer une nouvelle instance à chaque fois que vous résoudre un type.
Maintenant, disons que vous avez une classe qui s'appuie sur une ICalculator d'être présent, vous pourriez avoir..
Et vous pouvez configurer la bibliothèque d'injecter un objet dans le constructeur au moment de sa création.
Donc de DI ou de l'Injection de Dépendance des moyens pour injecter un objet à un autre pourrait avoir besoin.
Ce mec WilcoxTutorials donne une excellente démonstration de l'Unité de conteneur qui est destiné aux débutants.
Partie 1: http://www.youtube.com/watch?v=CWwe9Z0Gyew
Partie 2: http://www.youtube.com/watch?v=PsIbevgzQQE
En moins d'une demi-heure et vous permettra de comprendre les bases!
L'unité est un Cio. Le point de Cio est à l'abstrait le câblage des dépendances entre les types en dehors des types eux-mêmes. Cela a quelques avantages. Tout d'abord, il est fait de manière centrale, ce qui signifie que vous n'avez pas à changer beaucoup de code lorsque les dépendances changement (qui peut être le cas pour les tests unitaires).
En outre, si le câblage est effectué à l'aide des données de configuration au lieu de code, vous pouvez réellement rewire les dépendances après le déploiement, et donc de modifier le comportement de l'application sans modifier le code.
MSDN a un Guide du développeur de l'Injection de Dépendance à l'Aide de l'Unité qui peuvent être utiles.
Le Guide du Développeur commence par les bases de ce que l'injection de dépendance est, et continue avec des exemples d'utilisation de l'Unité pour l'injection de dépendances. De février 2014 le Guide du Développeur couvre l'Unité 3.0, qui a été publié en avril 2013.
Je suis couvrant la plupart des exemples de l'Injection de Dépendance dans ASP.NET Web API 2
Dans DIAutoV2Controller.cs Auto Injection mécanisme est utilisé
Dans DIV2Controller.cs tout sera injecté à partir de la Dépendance de la Configuration du Résolveur de classe
La configuration de la résolution de Dépendances