我正在使用Unity进行依赖注入,并拥有一个类Config的实例,该类实现了在Unity容器中注册的IConfig。
IConfiguration config = new Configuration();
unityContainer.RegisterInstance<IConfiguration>(config);
当应用程序运行且用户加载已保存的配置时,我想更新存储在Unity中的实例,并加载配置对象。例如。像下面的伪代码
IConfiguration loadedConfig = FileLoadService.Load(filepath);
unityContainer.Instance = loadedConfig;
这可能吗?
答案 0 :(得分:2)
您可以通过调用
重新注册实例unityContainer.RegisterInstance<IConfiguration>(config);
但更好的解决方案是更改FileLoadServce.Load(filepath)
逻辑,以便更新现有配置对象的值。此解决方案的好处是,已经解析的引用(通过调用unityContainer.Resolve<IConfiguration>()
)也会更新到此配置对象。