为什么Console App需要这么长时间才能启动

时间:2019-05-10 13:53:46

标签: c# inversion-of-control autofac

我有一个与Autofac一起使用的控制台应用程序。当我刚开始编写代码时-事情进展很快-现在,由于某种原因,启动该应用程序需要6分钟以上的时间。基本上需要6分钟或更长时间来解决所有依赖性并启动程序。

这是我设置程序的方式。...

    private static void Main(string[] args)
    {
        var container = ContainerConfig.Configure();
        using (var scope = container.BeginLifetimeScope())
        {
            var app = scope.Resolve<IApplication>();

            app.Run(args);
        }
    }

这是ContainterConfig类。...

public static class ContainerConfig
{
    public static IContainer Configure()
    {
        var builder = new ContainerBuilder();

        builder.RegisterType<Application>().As<IApplication>();

        builder.RegisterType<AcmeEngineRepositoryBase>().As<IAcmeEngineRepositoryBase>();
        builder.RegisterType<AuditLogicBase>().As<IAuditLogicBase>();
        builder.RegisterType<AuditRepositoryBase>().As<IAuditRepositoryBase>();
        builder.RegisterType<AuditLogic>().As<IAuditLogic>();
        builder.RegisterType<AuditRepository>().As<IAuditRepository>();


        builder.RegisterType<BirdieLogic>().As<IBirdieLogic>();
        builder.RegisterType<BirdieRepository>().As<IBirdieRepository>();

        builder.RegisterType<AttackLogic>().As<IAttackLogic>();
        builder.RegisterType<AttackRepository>().As<IAttackRepository>();

        builder.RegisterType<SettingsLogic>().As<ISettingsLogic>();
        builder.RegisterType<SettingsRepository>().As<ISettingsRepository>();

        builder.RegisterType<AcmeEngineLogic>().As<IAcmeEngineLogic>();
        builder.RegisterType<AcmeEngineRepository>().As<IAcmeEngineRepository>();
        builder.RegisterType<AcmeEngineApiRepository>().As<IAcmeEngineApiRepository>();

        builder.RegisterType<ExperianLogic>().As<IExperianLogic>();
        builder.RegisterType<ExperianRepository>().As<IExperianRepository>();



        builder.RegisterType<ValidationLogic>().As<IValidationLogic>();

        builder.Register(c => new MatchStat()).As<MatchStat>().SingleInstance();

        return builder.Build();
    }
}

然后,我有一个

public void Run(string[] args)
{
    Application Code Here
}

当我刚开始时没有任何问题,现在随着我添加一些项目,它似乎变得越来越糟。我以为我的IOC容器有问题,但是我已经阅读了很多文档,似乎没有什么能指出我的问题。

任何人都可以阐明这个问题吗?

感谢您的时间。

0 个答案:

没有答案