我有以下实现:
private INewsRepository newsRepository;
public NewsService(INewsRepository newsRepository)
{
this.newsRepository = newsRepository;
}
该服务与我的Web项目位于一个单独的项目中。我在哪里以及如何指定依赖项注入(inject)?我是否仍需要将其放入global.asax文件中?如果同时在其他应用程序中使用了该服务怎么办?
最佳答案
您只应从应用程序的根目录(global.asax)引用容器。这称为Register Resolve Release pattern。
正确使用构造函数注入(inject)可确保您可以重用其他应用程序中的NewsService类,而无需那些其他应用程序使用特定的DI容器(或任何其他容器)。
这是designing the service in a DI Friendly manner的良好开端,但仍使其与容器无关。
关于c# - 如何在类库项目中使用Autofac?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4862771/