У меня есть приложение Unity, которое работает и работает отлично, но в настоящее время мы находимся в процессе очистки нашего кода, действуя на все предупреждения компиляции.
Я получаю предупреждение о следующем фрагменте кодаиз-за устаревшего метода Microsoft.Practices.Unity.Configuration.ContainerElement.Configure:
var map = new ExeConfigurationFileMap { ExeConfigFilename = GetConfigFolderForFile("unity.config") };
Configuration config = ConfigurationManager.OpenMappedExeConfiguration(map, ConfigurationUserLevel.None);
var section = (UnityConfigurationSection)config.GetSection(SectionName);
if (section != null)
{
var container = new UnityContainer();
foreach (ContainerElement containerElement in section.Containers)
{
containerElement.Configure(container);
}
Container = container; // Set the main container
}
Я хотел бы заменить его на метод UnityConfigurationSection.Configure, как предлагается, но не вижу, что они эквивалентныиз-за того, что он находится на разных уровнях иерархии объектов.
Я пытался:
var map = new ExeConfigurationFileMap { ExeConfigFilename = GetConfigFolderForFile("unity.config") };
Configuration config = ConfigurationManager.OpenMappedExeConfiguration(map, ConfigurationUserLevel.None);
var section = (UnityConfigurationSection)config.GetSection(SectionName);
if (section != null)
{
IUnityContainer container = new UnityContainer();
container = section.Configure(container);
Container = container; // Set the main container
}
, но это падает с нулевыми ссылками.
Как мне обновитькод, чтобы исключить использование устаревшего метода?