0
我试图弄清楚如何执行以下操作,但有点问题。我很抱歉,如果以下看起来很愚蠢,对Castle.Windsor来说只是新的。设置储存库和提供商
对,在我的应用程序库中应该指向不同的dbs。它们都共享一个抽象类(Db方法抽象),但它们之间没有关联。 所以我有这样的事情:
public class UserService : IUserService
{
private readonly IUserRepository _repository;
public UserService(IUserRepository repository) { _repository = repository; }
...
}
public class UserRepository : Mongo, IUserRepository
{
public UserRepository(DatabaseHosts.Users UsersHost) : base(UsersHost) { }
...
}
所有的配置设置是强类型的,到目前为止,我呼吁设置服务安装之前,我叫上安装的其余部分。
我的问题是:我是否需要注册服务和Respositories,或者有什么遗失的东西?
我想,我们可以允许从服务访问DbHost属性,但我宁愿不。 我们也有供应商可能需要某种初始化的外部系统。
到目前为止,我已经soemthing这样的:
public class ServicesInstaller : IWindsorInstaller
{
public void Install(IWindsorContainer container, IConfigurationStore store)
{
container.Register(Component.For<IUserService>()
.ImplementedBy<IUserService>()
.LifeStyle.Singleton);
}
}
钽
这就是我到目前为止,问题是我注册我的仓库在安装程序中,或者我将DbHost属性从服务传递到存储库。请记住,我不使用上下文或UnitOfWork或类似的。所以本质上我需要用合适的字符串来初始化存储库。 – ErMasca
最好注册它并使用DI使其可测试,而不是从服务传递具体上下文。 –