castle-windsorAan de slag met kasteel-windsor


Opmerkingen

Castle Windsor is een volwassen Inversion of Control-container beschikbaar voor .NET en Silverlight.

  • De huidige releaseversie is 3.3.0, uitgebracht in mei 2014. Raadpleeg de links aan de rechterkant om deze te downloaden van GitHub of NuGet.
  • Castle Core versie 4.0.0 beta werd uitgebracht in juli 2016.

Naar de officiële website van Castle

Naar de documentatiepagina's van Castle

Hallo wereld - Kasteel 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();
}
 

Diensten:

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;
}
 

Installatie

Castle Windsor is beschikbaar via NuGet

  1. Gebruik de "NuGet-pakketten beheren" en zoek naar "kasteelwindor"

  2. Gebruik Package Manager Console om uit te voeren:

    Install-Package Castle.Windsor
     

Nu kunt u het gebruiken om afhankelijkheden in uw project af te handelen.

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
 

Zie officiële documentatie voor meer informatie.

Castle.Windsor pakket is afhankelijk van Castle.Core pakket en wordt ook geïnstalleerd