ktu*_*nik 2 c# castle-windsor castle
这应该是一个普遍的问题,我已经搜索但是还没有找到任何解决方案,如果它是一个骗局,请指出我适当的链接.
所以,我有一个通用的存储库来支持几个entites,我暂时注册它如下:
public class ExpensiveServiceInstaller : IWindsorInstaller
{
public void Install(IWindsorContainer container, IConfigurationStore store)
{
Register<EntityA>(container);
Register<EntityB>(container);
//etc etc
//when there is a new one should register it manually
}
void Register<T>(IWindsorContainer container) where T : Entity
{
container.Register(Component.For<IRepository<T>>()
.ImplementedBy<Repository<T>>()
.LifeStyle.Transient);
}
}
Run Code Online (Sandbox Code Playgroud)
注意:
位于Repositories命名空间
上的存储库位于命名空间上的实体Entities,包括Entity所有实体的基类
它工作正常,但我认为它应该是一种更好的方式,按惯例使用注册的更自动的方式,所以当我在我的项目中添加一个新实体时,windsor将自动识别它,并为它注册存储库.还有一个问题,如何忽略Entity(基类)所以它没有在容器上注册.
问候
你的意思是这样的?
container.Register(Component.For(typeof(IRepository<>))
.ImplementedBy(typeof(Repository<>))
.LifeStyle.Transient);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2300 次 |
| 最近记录: |