我有一个想法,感觉自己可能漏掉了什么东西,但基本上我正在制作一个控制台应用程序,它将调用多个处理程序。
Program.cs
private static IContainer _container;
static void Main(string[] args)
{
_container = AutoFacBootstrapper.Init();
var _backupFactory = _container.Resolve<IBackupFactory>();
UserHandler.Init();
}
AutoFacBootstrapper.cs
public static IContainer Init()
{
var builder = new ContainerBuilder();
builder.RegisterType<BackupFactory>().As<IBackupFactory>();
return builder.Build();
}
所有这些都很好玩,我可以在Program.cs中使用我的工厂,但是当我试图在另一个类中(比如UserHandler.cs)使用我的工厂时,我的_backupFactory
将保持为null(这是有道理的)。
UserHandler.cs
private static IBackupFactory _backupFactory;
public UserHandler(IBackupFactory backupFactory)
{
_backupFactory = backupFactory;
}
public static void Init(string[] subCommands)
{
var users = _backupFactory.GetFtpUsers();
}
我该如何修复这个问题,以便我可以在另一个类中使用构造函数注入,同时只需要在启动时初始化它?