我有以下实现:

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/

10-09 03:31