【问题标题】:How to fix Unity Container Warning: "ContainerElement.Configure(Unity.IUnityContainer) is obsolete"?如何修复 Unity Container 警告:“ContainerElement.Configure(Unity.IUnityContainer) 已过时”?
【发布时间】:2012-09-27 20:13:46
【问题描述】:

我刚刚在我的盒子上安装了 Prism4,并试图开始研究 Unity 的示例 (UnityContainer)。

我正在使用 SL4、Prism4、.Net Framework4、VS 2010 Ultimate。

我在Program.cs 线上configSection.Containers.Default.Configure(container); 的课堂上收到警告

Microsoft.Practices.Unity.Configuration.ContainerElement.Configure(Microsoft.Practices.Unity.IUnityContainer)' 已过时:'"使用 UnityConfigurationSection.Configure(container, 名称) 方法"

这是我写的代码:

var configurationSection = (UnityConfigurationSection)ConfigurationManager.GetSection("unity"); 
foreach (ContainerElement containerElement in configurationSection.Containers) 
{ 
    container =configurationSection.Configure(container, containerElement.Name); 
} 

我知道旧方法已被弃用,需要更换,但如何做到这一点?我在上面尝试的代码无法正常工作。

【问题讨论】:

  • 好的,但问题是什么?警告描述您需要改用UnityConfigurationSection.Configure...
  • 您好,请耐心等待您的回答。是的,我确实明白这一点,我试过了。这是我写的代码: var configurationSection = (UnityConfigurationSection)ConfigurationManager.GetSection("unity"); foreach (containerElement containerElement in configurationSection.Containers) { container =configurationSection.Configure(container, containerElement.Name); } 但我仍然得到同样的错误。
  • 错误或警告?在您更改的代码中,您不应收到编译器警告。

标签: c# .net prism unity-container


【解决方案1】:

Unity 库中以前的方法 - Microsoft.Practices.Unity.Configuration.ContainerElement.Configure(Microsoft.Practices.Unity.IUnityContainer) 现在已替换为新的实现 UnityConfigurationSection.Configure(container, name)

它告诉您原来的方法已被新版本的 Unity 库所取代,所以只需使用新方法即可。如果您想要旧版方法,则需要使用旧版本的 Unity 库。

【讨论】:

  • 您好,请耐心等待您的回答。是的,我确实明白这一点,我试过了。这是我写的代码: var configurationSection = (UnityConfigurationSection)ConfigurationManager.GetSection("unity"); foreach (containerElement containerElement in configurationSection.Containers) { container =configurationSection.Configure(container, containerElement.Name); } 但我仍然得到同样的错误。
  • 我有类似的情况,代码片段发出相同的过时警告:_iocContainer = new UnityContainer(); var section = (UnityConfigurationSection)ConfigurationManager.GetSection("unity"); section.Containers.Default.Configure(_iocContainer); 我应该用section.Configure(_iocContainer, "unity"); 替换第二行吗?这对我来说不是 100% 清楚。
猜你喜欢
  • 2011-06-17
  • 2015-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-27
相关资源
最近更新 更多