是否有一种方法可以自动解析和启动一个自动启动的模块

本文关键字:启动 一个 自动启动 模块 一种 方法 是否 | 更新日期: 2023-09-27 18:10:13

我正在使用autofac IStartables加载配置,例如

public class MyConfig : IMyConfig, IStartable
{
  public string configValue { get; private set; }
  public void Start()
  {
    configValue = ... // Load from config file
  }
}

然后在bootstrapper模块中,像这样注册:

builder.RegisterType<MyConfig>().As<IMyConfig>().As<IStartable>().SingleInstance();

当使用autofacc在构造器中解析配置时,这一切都工作得很好,但有时我想在bootstrapper模块本身使用一些配置值。我已经设法使它工作通过使用:

var config = new MyConfig();
config.Start();
// now we can use config.configValue

然而,这两步初始化似乎不是很干净-有一个更好的方法来做这件事与autoface ?

是否有一种方法可以自动解析和启动一个自动启动的模块

不需要调用Start()。它将在构建容器时自动调用。这就是IStartable的意义所在。

http://docs.autofac.org/en/latest/lifetime/startup.html