Castle-windsor'u kullanmaya başlama

Merhaba Dünya - Windsor Kalesi

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

Hizmetler:

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

Kurulum

Windsor Kalesi, NuGet aracılığıyla edinilebilir

  1. “NuGet Paketlerini Yönet"i kullanın ve “kale windsor” için arama yapın

  2. Aşağıdakileri yürütmek için Paket Yönetici Konsolu’nu kullanın:

     Install-Package Castle.Windsor
    

Artık projenizdeki bağımlılıkları işlemek için kullanabilirsiniz.

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

Daha fazla ayrıntı için resmi belgelere bakın.

Castle.Windsor paketi Castle.Core paketine bağlıdır ve onu da kuracaktır