Premiers pas avec château-windsor

Hello World - Château de 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

Le château de Windsor est disponible via [NuGet][1]

  1. Utilisez “Gérer les packages NuGet” et recherchez “château windsor”

    • To download for [Visual Studio 2015][2]
    • To download for [previous versions][3]
  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 [documentation officielle][4] pour plus de détails.

Le package “Castle.Windsor” dépend du package “Castle.Core” et il l’installera également

[1] : https://www.nuget.org/packages/Castle.Windsor [2] : https://visualstudiogallery.msdn.microsoft.com/5d345edc-2e2d-4a9c-b73b-d53956dc458d [3] : https://visualstudiogallery.msdn.microsoft.com/27077b70-9dad-4c64-adcf-c7cf6bc9970c [4] : https://github.com/castleproject/Windsor/blob/master/docs/README.md