castle-windsorCommencer avec castle-windsor


Remarques

Castle Windsor est un conteneur Inversion of Control disponible pour .NET et Silverlight.

  • La version actuelle est la version 3.3.0, publiée en mai 2014. Reportez-vous aux liens à droite pour le télécharger depuis GitHub ou NuGet.
  • La version 4.0.0 de Castle Core version 4.0.0 a été publiée en juillet 2016.

Site officiel de Castle

Vers les pages de documentation de Castle

Bonjour tout le monde - Castle Windsor

class Program
{
    static void Main(string[] args)
    {
        //Initialize a new container
        WindsorContainer container = new WindsorContainer();

        //Register IService with a specific implementation and supply its dependencies
        container.Register(Component.For<IService>()
                                    .ImplementedBy<SomeService>()
                                    .DependsOn(Dependency.OnValue("dependency", "I am Castle Windsor")));

        //Request the IService from the container
        var service = container.Resolve<IService>();
        
        //Will print to console: "Hello World! I am Castle Windsor
        service.Foo();
}
 

Prestations de service:

public interface IService
{
    void Foo();
}

public class SomeService : IService
{
    public SomeService(string dependency)
    {
        _dependency = dependency;
    }

    public void Foo()
    {
        Console.WriteLine($"Hello World! {_dependency}");
    }

    private string _dependency;
}
 

Installation

Castle Windsor est disponible via NuGet

  1. Utilisez le "Manage NuGet Packages" et recherchez "castle windsor"

  2. Utilisez la console du gestionnaire de packages pour exécuter:

    Install-Package Castle.Windsor
     

Vous pouvez maintenant l'utiliser pour gérer les dépendances dans votre projet.

var container = new WindsorContainer(); // create instance of the container
container.Register(Component.For<IService>().ImplementedBy<Service>()); // register depndency
var service = container.Resolve<IService>(); // resolve with Resolve method
 

Voir la documentation officielle pour plus de détails.

Castle.Windsor package Castle.Windsor dépend du package Castle.Core et l'installera également