我刚刚开始使用 Windsor 来解决依赖问题。但是我在控制器中传递字符串值时遇到了错误。我检查了几个类似的温莎邮报,但没有运气。
public class HomeController : Controller
{
public readonly String _A = string.Empty;
public HomeController(string A)
{
this._A = A;
}
}
安装程序
public void Install(IWindsorContainer container, IConfigurationStore store)
{
container.Register(Classes.FromThisAssembly()
.BasedOn<IController>()
.LifestyleTransient());
}
温莎控制器工厂
public class WindsorControllerFactory : DefaultControllerFactory
{
private readonly IKernel kernel;
public WindsorControllerFactory(IKernel kernel)
{
this.kernel = kernel;
}
public override void ReleaseController(IController controller)
{
kernel.ReleaseComponent(controller);
}
protected override IController GetControllerInstance(RequestContext requestContext, Type controllerType)
{
if (controllerType == null)
{
throw new HttpException(404, string.Format("The controller for path '{0}' could not be found.", requestContext.HttpContext.Request.Path));
}
return (IController)kernel.Resolve(controllerType);
}
}
我是否需要将“A”包装在一个类中并解析它各自的接口?