城堡温莎控制器工厂和存储库未解决
|
我目前正在测试温莎城堡与Ninject的对决,我真的很喜欢温莎提供的服务,我只是在存储库注入方面遇到问题。
所以,这是设置...我有一个看起来像这样的ControllersInstaller ...
public class ControllersInstaller : IWindsorInstaller
{
public void Install(IWindsorContainer container, IConfigurationStore store)
{
container.Register(FindControllers().Configure(ConfigureControllers()));
}
private BasedOnDescriptor FindControllers()
{
return AllTypes.FromThisAssembly()
.BasedOn<IController>()
.If(Component.IsInSameNamespaceAs<HomeController>())
.If(t => t.Name.EndsWith(\"Controller\"));
}
private ConfigureDelegate ConfigureControllers()
{
return c => c.LifeStyle.Transient;
}
}
看起来像这样的上下文安装程序...
public class ContextInstaller : IWindsorInstaller
{
public void Install(IWindsorContainer container, IConfigurationStore store)
{
container.Register(AllTypes.FromThisAssembly()
.Where(t => t.Name == \"MyContext\"));
}
}
和一个仓库安装程序看起来像...
public class RepoInstaller : IWindsorInstaller
{
public void Install(IWindsorContainer container, IConfigurationStore store)
{
container.Register(AllTypes.FromThisAssembly()
.Where(type => type.Name.EndsWith(\"Repo\"))
.WithService.DefaultInterface()
.Configure(c => c.LifeStyle.Singleton));
}
}
然后在Global.asax中,我通过...进行注册
private static void BootstrapContainer()
{
var container = new WindsorContainer() // Create a container to hold the dependencies
.Install(
new ContextInstaller(),
new RepoInstaller(),
new ControllersInstaller()
); // Scan this assembly for all IWindsorInstaller
var controllerFactory = new WindsorControllerFactory(container.Kernel); // Create a new instance
ControllerBuilder.Current.SetControllerFactory(controllerFactory); // Use my factory instead of default
}
我的家庭控制器看起来像...
public class HomeController : Controller
{
IMyRepo _repo;
public HomeController(MyRepo repo)
{
_repo = repo;
}
但是无论出于什么原因,我调试东西时都会得到...
此组件的某些依赖项无法静态解析。 MyProject.Controllers.HomeController正在等待以下依赖项:服务:-未注册的MyProject.Models.MyRepo。
而且我不知道为什么!我尝试将回购安装程序安装为单例,然后尝试重新排序注册过程,以便在控制器之前进行回购安装。
当我调试并在Global.asax中访问控制器工厂行时,它表示除HomeController之外的所有内容均已正确解析。
有什么想法吗?
没有找到相关结果
已邀请:
2 个回复
勘掸府迫路
断跑胺弄萎
那就是工作所需要的... Sheesh ...