Это довольно специфичная и сложная ситуация для объяснения, поэтому терпите меня.
Я создал UnityContainerExtension, который отвечает за загрузку и настройку других файлов .config.
Например,Мой файл App.Config выглядит следующим образом:
<configuration>
<configSections>
<section name="unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection, Microsoft.Practices.Unity.Configuration, Version=2.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</configSections>
<unity xmlns="http://schemas.microsoft.com/practices/2010/unity">
<assembly name="SomeAssembly" />
<namespace name="SomeAssembly.SomeNameSpace" />
<container>
<extension type="ConfigSectionExtension" />
<extension type="TestExtension" />
</container>
</unity>
</configuration>
Мое первое расширение ConfigSectionExtension
запускает код (следующий), который загружает и настраивает контейнер с другим файлом .config.пример.
var fileMap = new ExeConfigurationFileMap { ExeConfigFilename = "logging.config"};
Configuration configuration = ConfigurationManager.OpenMappedExeConfiguration( fileMap, ConfigurationUserLevel.None );
((UnityConfigurationSection)configuration.GetSection( "unity" )).Configure( Container );
Этот код работает нормально, однако расширение TestExtension в моей конфигурации не может быть разрешено после настройки контейнера с файлом logging.config
.
Конкретный ответ:
"The type name or alias TestExtension could not be resolved."
Если я удаляю код, который загружает и настраивает файл logging.config
с контейнером, то обнаруживаются оба расширения.Есть ли способ заставить это работать?
По сути, это мой подход к проблеме невозможности связать несколько файлов .config.Если кто-то знает лучший способ связать файлы .config вместе для Unity, я, конечно, также буду открыт для этого решения.