使用dependency injection进行内部操作的类库的最佳实践是什么?

在构建足够复杂的类库以使用内部dependency injection时,我应该注意什么?

假设它将使用Castle Windsor(作为示例),配置容器的最佳位置/方法是什么,假设该库将由简单的控制台应用程序(没有DI)使用,Web表单使用相同的容器( Castle Windsor)和使用不同容器(NInject)的网络应用程序?

我会在这里使用facade模式 :在库中,在公共类上公开一个公共方法来执行容器初始化(例如一个简单的Initialize() ),并且只在库内部使用Castle Windsor,这样库客户端甚至不知道你在使用它。

并不是说答案不会起作用,但我想任何落在这里的人都应该看看这个Q / A. 阅读之后,我必须同意using an IoC within a class library smells like a ServiceLocatorusing an IoC within a class library smells like a ServiceLocator (反模式),并且Coupling a library to a container is a smell

最初我以为我会做一件好事,我做的最好的事情就是先查一下。