我在尝试弄清楚如何执行以下操作时遇到了一些问题。如果以下看起来很愚蠢,我很道歉,对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) { }
...
}
所有配置设置都是强类型的,到目前为止,我在调用Install之前调用了设置服务的安装程序。
我的问题是:我是否必须注册服务和存储库,或者有什么东西丢失了?
我认为,我们可以允许从服务访问DbHost属性,但我不喜欢。 我们还有可能需要某种初始化的外部系统的提供者。
到目前为止,我有这样的事情:
public class ServicesInstaller : IWindsorInstaller
{
public void Install(IWindsorContainer container, IConfigurationStore store)
{
container.Register(Component.For<IUserService>()
.ImplementedBy<IUserService>()
.LifeStyle.Singleton);
}
}
TA
答案 0 :(得分:0)
public void Install(IWindsorContainer container, IConfigurationStore store)
{
container.Register(Component.For<IUserService>()
.ImplementedBy<UserService>()
.LifeStyle.Singleton);
}
您必须向接口注册具体服务“UserService”,以便容器能够确定要解析的具体内容。