1

我正在开发一个需要使用公共服务定位器 ( http://commonservicelocator.codeplex.com/ ) 来提供通用 IOC 支持的库,这样我们就不会与任何消费者发生冲突。显然我不想在我的项目中直接引用 IOC 框架,但我不确定如何注释这些部分,以便它们可以被各种框架找到。例如,MEF 通常通过使用 Export 注释查找类来工作,而 LinFu 通过查找具有 Implements 注释的类来工作。这两个注释都是在它们各自的项目中定义的,要求我同时引用它们。

我怎样才能避免添加所有这些类并多次注释我的所有类?它当然不能很好地适应新的 IOC 框架,因为每个新框架的注释都需要重新构建。

4

1 回答 1

2

从文档中:

“库不应配置容器”

“作为库或框架作者,请了解您不应该将任何内容放入容器中 - 这是您的调用者的工作。允许应用程序编写者选择他们想要的任何容器。您需要记录您需要注册的服务,以及是否您正在使用 ServiceLocation.Current 环境容器。”

因此,我认为您不需要导出任何内容,只需记录运行所需消耗的内容即可。并且可以选择使用 ServiceLocator.Current 接口来解决您需要的任何依赖项。

于 2010-07-24T00:32:10.460 回答