更新使用Unity容器注册的实例

时间:2011-07-10 10:51:21

标签: c# unity-container

我正在使用Unity进行依赖注入,并拥有一个类Config的实例,该类实现了在Unity容器中注册的IConfig。

IConfiguration config = new Configuration();

unityContainer.RegisterInstance<IConfiguration>(config);

当应用程序运行且用户加载已保存的配置时,我想更新存储在Unity中的实例,并加载配置对象。例如。像下面的伪代码

IConfiguration loadedConfig = FileLoadService.Load(filepath);
unityContainer.Instance = loadedConfig;

这可能吗?

1 个答案:

答案 0 :(得分:2)

您可以通过调用

重新注册实例
unityContainer.RegisterInstance<IConfiguration>(config);

但更好的解决方案是更改FileLoadServce.Load(filepath)逻辑,以便更新现有配置对象的值。此解决方案的好处是,已经解析的引用(通过调用unityContainer.Resolve<IConfiguration>())也会更新到此配置对象。