anchor.diff:  
   [source,csharp]
   ----
  -var container = new Container(configuration =>
  -{
  -	configuration.For<ILogger>().Add<Logger>();
  -});
  +configuration.For<ILogger>().Add<Logger>();
   ----
   
   NOTE: Il existe une différenciation très nette entre les deux méthode. Add<T> permet d'ajouter une implémentation alors que Use<T> définit l'implementation comme strictement à utiliser. En conséquence lors que vous utilisez Use<T> c'est toujours la dernière liaison à une implémentation qui l'emporte.
  +
  +Parfois il est nécessaire de définir comment le Container va créer l'instance, dans se cas il est possible d'utilise une surcharge de la méthode Use qui accept en paramètre une Function qui a en paramètre le context du containeret qui retourne une instance correspondant au contrat :
  +
  +[source,csharp]
  +----
  +configuration.For<ILogger>().Use("Logger instance creation", (x) =>
  +{
  +	return new ConsoleLogger();
  +});
  +----
   
   La dépendance est à présent définit. Le code ne contient pas de logique de création des implémentations c'est donc l'instance de la class Container qui va donc les construire pour nous. Il est possible de les récupérer en appelant la méthode GetInstance<T>() :
   
  
positive.code: }
  ----
  
  Après avoir configurer pour lié une des deux implémentations de ILogger, il est possible d'injecter la dépendance dans une instance de Controller à l'aide de la méthode BuildUp du container :
  
  
  
  == Mise en place dans WebApi
  
  
  
  
  == IoC best practices
  
  
negative.code: 
  	public Controller(ILogger logger)
  	{
  		_logger = logger;
  	}
  
  	public void Action()
  