我正在使用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
你能給出一些你試圖實現的例子嗎(用一些代碼)? –