app.config实现分离

时间:2015-12-28 09:00:31

标签: c# .net dependency-injection inversion-of-control

我对以下场景感兴趣。存在一个包含名为IRepository的通用存储库接口的类库。该库还包含相同接口的多个实现,例如UserRepository,ItemRepository等。此外,我无法添加Unity或其他DI容器之类的外部库。我的问题是:

  1. 有没有办法通过映射接口的实现 配置文件(例如,出于存储库工厂的目的)?
  2. 是否可以创建一个包含实现接口的类的路径的配置文件?
  3. 如果存在这种可能性,是否也可以创建一个消耗该信息的类(例如,使用特定实现来生成存储库的Factory)?

1 个答案:

答案 0 :(得分:1)

最好的方法是使用Unity容器。它允许在配置文件中执行类似的操作:

<container>
  <register type="ILogger" mapTo="EventLogLogger" /> 
</container>

或者您可以自己阅读配置部分并在应用程序启动时使用反射创建实例