【问题标题】:dependency injection into a console app [duplicate]依赖注入到控制台应用程序[重复]
【发布时间】:2016-08-08 20:24:39
【问题描述】:

我们使用 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 方法中。

这可能吗?

谢谢!

【问题讨论】:

标签: c# .net dependency-injection console-application autofac


【解决方案1】:

Main(或在从Main 调用的方法中)创建和配置您的容器。 然后从容器中解析SuperHeroFactory 的实例并调用您需要的任何方法。

有人可能会反对您不应该直接从容器中解析任何内容。没错,但Main 是您的作文根。这是我们应该引用容器的地方,所以它在那里是合适的。

【讨论】:

    【解决方案2】:

    不,不要在您的 Main() 方法中这样做;而是定义一个单独的类,它应该采用 ISuperHeroService 实例并做必要的工作。然后在您的Main() 方法中创建该类的一个实例,并且在实例化时您可以像现在一样执行相同的DI。

    【讨论】:

      猜你喜欢
      • 2014-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-18
      • 2018-06-30
      • 2021-03-02
      相关资源
      最近更新 更多