C# 如何连接控制器';依赖性
因此,我阅读了温莎城堡的asp.net mvc教程,我的注册情况如下: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());
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);