Я настраиваю свои файлы конфигурации xml для моего веб-приложения asp.net, используя инъекцию зависимостей IOC Spring.net.Я ссылался на каждый из моих конфигурационных файлов в web.config.Пример настройки в конфигурационном файле spring.net (settings.xml):
<object id="obj1"
type="NS.Common.Cache.Class, NS.Common"
singleton="true"
init-method="Initialize"
destroy-method="Dispose">
<property name="Name" value="My Name" />
</object>
Все это отлично работает.
Теперь я устанавливаю свое веб-приложение в нескольких средах, поэтому я создаюконфигурационный файл spring.net для среды, например.dev, qa, prod.
Таким образом, при установке приложения ссылка на файл Spring соответствующей среды указывается в web.config.Это часть автоматического установщика.
В файле среды qa я хочу переопределить объект выше "obj1", чтобы:
<object id="obj1"
type="NS.Common.Cache.Class2, NS.Common"
singleton="true"
init-method="Initialize"
destroy-method="Dispose">
<property name="Name" value="My New Name" />
</object>
Однако, поскольку это автоматизировано (добавление ссылкив файл среды), файл settings.xml не изменяется.
А теперь ссылка на 2 файла с определенным объектом с одинаковым идентификатором - это вызывает серьезные проблемы, так как могут возникнуть ошибки во время выполнения.
Есть ли способ, который я могу включить в файл qa.xml?и флаг или тому подобное для выделения этого определения объекта переопределяет любые другие определенные объекты в любом другом XML-файле с таким же идентификатором объекта?