C# 如何连接控制器';依赖性

C# 如何连接控制器';依赖性,c#,nhibernate,castle-windsor,C#,Nhibernate,Castle Windsor,因此,我阅读了温莎城堡的asp.net mvc教程,我的注册情况如下: private static IWindsorContainer _container = new WindsorContainer(); private static void BootstrapContainer() { _container = new WindsorContainer() .Install(FromAssembly.This());

因此,我阅读了温莎城堡的asp.net mvc教程,我的注册情况如下:

    private static IWindsorContainer _container = new WindsorContainer();
    private static void BootstrapContainer()
    {
        _container = new WindsorContainer()
            .Install(FromAssembly.This());
        var controllerFactory = new WindsorControllerFactory(_container.Kernel);
        ControllerBuilder.Current.SetControllerFactory(controllerFactory);
    }
    protected void Application_End()
    {
        _container.Dispose();
    }
因此,在我的HomeController中,我有:

public class HomeController : Controller
{
    private IUserService _userService;

    public HomeController(IUserService userService)
    {
        this._userService = userService;
    }
}
我如何连接此控制器以设置IUserService

更新 我的vs.net项目包括:

web, interfaces, entities, data (nhibernate), services

WindsorController Factory的实现在doco中应该是这样的

已更新

需要通过依赖性注入解决的每个接口都需要注册

这可以通过调用容器上的.Register方法来完成

container.Register(Component.For<IUserService>().ImplementedBy<UserService>().LifeStyle.Transient);
container.Register(Component.For().ImplementedBy().lifesture.Transient);

更多信息:

我希望自动连接所有服务,然后自动连接控制器的所有组件。我该怎么做?@Blankman要做到这一点,你应该创建一个像IService这样没有实现的标记接口,并从中继承IUserService。然后调用container.Register(Classes.FromThisAssembly().BasedOn().WithService.FromInterface());这将注册所有iSeries设备。或者,您应该构建一个安装程序类。和。我可能不会从一个电话中注册所有内容,因为整个生命周期可能需要以不同的方式处理。
container.Register(Component.For<IUserService>().ImplementedBy<UserService>().LifeStyle.Transient);