我正在使用 Unity 进行依赖注入(inject),并在 Unity 容器中注册了实现 IConfig 的类 Config 的实例。
IConfiguration config = new Configuration();
unityContainer.RegisterInstance<IConfiguration>(config);
当应用程序正在运行并且用户加载保存的配置时,我想用加载的配置对象更新存储在 Unity 中的实例。例如。类似于下面的伪代码
IConfiguration loadedConfig = FileLoadService.Load(filepath);
unityContainer.Instance = loadedConfig;
这可能吗?
最佳答案
您可以通过调用重新注册实例
unityContainer.RegisterInstance<IConfiguration>(config);
但更好的解决方案是更改您的 FileLoadServce.Load(filepath)
逻辑,以便它更新现有配置对象的值。这个解决方案的好处是已经解决的引用(通过调用 unityContainer.Resolve<IConfiguration>()
)也更新了这个配置对象。
关于c# - 更新在 Unity 容器中注册的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6640646/