【发布时间】:2011-03-13 18:42:37
【问题描述】:
对于一个新项目,我使用 Windsor 容器来提供依赖注入 (DI)。 DI 应该为我提供松散耦合和高可测试性。由于我对依赖注入这个主题不熟悉,所以我很难弄清楚如何正确使用它。
这是我从文章和谷歌搜索中学到的:您应该让容器在启动时创建一个瞬间运行。在创建对象时应注意对象的依赖关系。嗯,到目前为止一切顺利。
现在说说我的情况。在另一个项目中的数据层内部,我的数据类依赖于在构造函数中设置的某种形式的日志记录。但由于它位于不同的项目中,因此无法访问容器。
唯一想到的解决方案是创建一个类似单例工厂的类,在启动时将容器注入其中。单例工厂持有容器实例和数据层类实例的项目创建,就像传统工厂类所做的那样,现在使用 DI。
虽然这似乎是一个很好的解决方案,但阅读一些文章让我觉得我错过了一些重要的东西,还有其他选项可以实现我想要的结果(我的数据层类是用 DI 创建的)。所以我可以使用来指导。源代码示例会很棒,但其他资源的解释或链接也会对我有很大帮助。
【问题讨论】:
标签: asp.net dependency-injection castle-windsor