Primeros pasos con el castillo de Windsor

Hola mundo - Castillo 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();
}

Servicios:

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

Instalación

Castle Windsor está disponible a través de NuGet

  1. Use “Administrar paquetes NuGet” y busque “castle windsor”

  2. Use la Consola del administrador de paquetes para ejecutar:

     Install-Package Castle.Windsor
    

Ahora puede usarlo para manejar dependencias en su proyecto.

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

Ver documentación oficial para más detalles.

El paquete Castle.Windsor depende del paquete Castle.Core y también lo instalará