我们使用Autofac在我们的Web应用程序中执行一些简单的依赖注入。它都是在幕后操作的类中配置和注册的。它使得我们项目中的注入东西很容易,就像这样:
//interface
public interface ISuperHereService
{ }
//class that uses the interface
public class SuperHeroFactory
{
public ISuperHeroService SuperHeroService { get; }
public SuperHeroFactory(ISuperHeroService superHeroService)
{
SuperHeroService = superHeroService;
...do all our stuff...
但是现在我必须创建一个单独的项目作为控制台应用程序。我的控制台应用程序有一个Main方法。
我完全不确定如何在Main方法中注入接口。
这可能吗?
谢谢!
答案 0 :(得分:6)
在Main
(或从Main
调用的方法中)创建和配置容器。)
然后从容器中解析SuperHeroFactory
的实例并调用您需要的任何方法。
有人可能会反对您不应直接从容器中解析任何内容。这是真的,但Main
是你的作文根。这是我们应该引用容器的地方,所以它适合那里。
答案 1 :(得分:2)
不,不要在Main()
方法中这样做;而是定义一个单独的类,它应该采用ISuperHeroService
实例并做必要的工作。然后在Main()
方法中创建该类的实例,在实例化时,您可以执行与您现在正在执行的相同的DI。