ContextRegistry rootContextName всегда нулевое или пустое
Использование Spring.NET IoC для добавления объектов зависимостей в свойства. Приложение представляет собой плагин Outlook.
Код:
IApplicationContext ctx = ContextRegistry.GetContext();
this.Property = (MyObject)ctx.GetObject("MyObject");
Конфиг:
<configuration>
<configSections>
<sectionGroup name="spring">
<section name="context" type="Spring.Context.Support.ContextHandler, Spring.Core"/>
<section name="objects" type="Spring.Context.Support.DefaultSectionHandler, Spring.Core" />
</sectionGroup>
</configSections>
<spring>
<context>
<resource uri="config://spring/objects"/>
</context>
<objects xmlns="http://www.springframework.net">
<description></description>
<!--Business Logic Layer Binding Objects-->
<object name="MyObject"
type="Quadrant2.MSCRM.Recruit.OfficeAddins.Toolbar.BusinessLogic.Q2_Win_SearchClient_Logic, Quadrant2.MSCRM.Recruit.OfficeAddins.Toolbar.BusinessLogic">
<property name="SearchClientDAL" ref="DAL_SearchClient"/>
</object>
<!-- snip -->
Этот код работал нормально около 2 лет, а затем мы обновили несколько сборок вокруг Outlook для работы в Outlook 2010 и некоторые модификации ленты - я думаю, что это не должно повлиять на Spring.NET.
Началось получение исключения "Имя контекста, переданного методу GetContext, не может быть пустым или пустым", выданного в GetContext();
вызов. При ближайшем рассмотрении я отметил, что rootContextName
является нулевым - честный вызов, объясняет исключение, которое я думал.
Также отмечено, что код будет работать нормально во время отладки, но не будет работать, если он будет запущен вне отладки. Проверенные dll, зависимости и конфиги находятся в нужном месте во время установки.
"Сила кормили" GetContext();
имя контекста "spring.root" в соответствии с сеансом отладки rootContextName
значение, и исключение уходит, но IApplicationContext
возвращается ноль.
Любые идеи или очевидные проблемы здесь?