我有一个类库,其类如下:
public class GoogleSearch
{
private IGoogleApiHelper _googleApiHelper;
public GoogleSearch(IGoogleApiHelper googleApiHelper)
{
_googleApiHelper = googleApiHelper;
}
//some methods
}
googleApiHelper是从库的IoC容器获取的服务。 我可以从库外部创建GoogleSearch类的实例,并从IoC容器中获取googleApiHelper服务吗?
答案 0 :(得分:2)
googleApiHelper是从库的IoC容器获取的服务。
防止这样做。库不应该使用DI容器,只有启动项目应该引用DI容器并且应该进行所有必需的注册,包括属于库的类型。有关详细信息,请参阅Composition Root。
如果您遵循组合根模式,您将不会遇到任何问题,因为所有内容都是在一个地方组成的。