我正在使用autofac IStartables加载配置,例如有没有办法自动解决并启动模块中可启动的autofac?
public class MyConfig : IMyConfig, IStartable
{
public string configValue { get; private set; }
public void Start()
{
configValue = ... // Load from config file
}
}
然后引导程序模块中,注册这样的:
builder.RegisterType<MyConfig>().As<IMyConfig>().As<IStartable>().SingleInstance();
使用autofac解决构造的配置时,这一切运作良好,但有时我想使用一些配置的引导程序模块本身的值。我设法得到它的工作使用:
var config = new MyConfig();
config.Start();
// now we can use config.configValue
这2步初始化似乎但是不很干净 - 在那里有autofac这样做的更好的办法?
我不明白究竟是什么问题。当你说“但有时我想在引导程序模块本身使用一些配置值”时,你是什么意思? –
根据配置值,在引导程序模块中注册的实例需要有不同的行为,所以我需要使用模块中的配置值。 – danio
你能给出一些你试图实现的例子吗(用一些代码)? –