castle-windsor开始使用castle-windsor


备注

Castle Windsor是一个成熟的Inversion of Control容器,可用于.NET和Silverlight。

  • 当前发布的版本是2014年5月发布的3.3.0。请参阅右侧的链接,从GitHub或NuGet下载。
  • Castle Core版本4.0.0 beta于2016年7月发布。

到Castle的官方网站

到Castle的文档页面

Hello World - 温莎城堡

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

服务:

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

安装

Castle Windsor城堡可通过NuGet抵达

  1. 使用“管理NuGet包”并搜索“城堡windsor”

  2. 使用程序包管理器控制台执行:

    Install-Package Castle.Windsor
     

现在,您可以使用它来处理项目中的依赖项。

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
 

有关详细信息,请参阅官方文档

Castle.Windsor 包取决于Castle.Core 包,它也将安装它