设置存储库和提供程序

时间:2011-10-11 11:43:50

标签: domain-driven-design castle-windsor

我在尝试弄清楚如何执行以下操作时遇到了一些问题。如果以下看起来很愚蠢,我很道歉,对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

1 个答案:

答案 0 :(得分:0)

   public void Install(IWindsorContainer container, IConfigurationStore store)
   {
       container.Register(Component.For<IUserService>()
                .ImplementedBy<UserService>()
                .LifeStyle.Singleton);
   }

您必须向接口注册具体服务“UserService”,以便容器能够确定要解析的具体内容。