我有一个与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容器有问题,但是我已经阅读了很多文档,似乎没有什么能指出我的问题。
任何人都可以阐明这个问题吗?
感谢您的时间。