我在使用spring.net 4.0,基於ASP.net的web應用程序的nhibernate 3.0開發web應用程序方面擁有適中的經驗。最近我遇到了一個情況,我需要使用spring.net來注入屬於WorkerRole
類的服務依賴關係。我創建了app.config文件,就像我通常在spring上使用web.config文件一樣。這是爲了清晰。 (我已經排除根節點)無法使用Spring.NET將依賴項注入Azure WorkerRole對象
<configSections>
<sectionGroup name="spring">
<section name="context" type="Spring.Context.Support.WebContextHandler, Spring.Web" requirePermission="false" />
<section name="objects" type="Spring.Context.Support.DefaultSectionHandler, Spring.Core" requirePermission="false" />
<section name="parsers" type="Spring.Context.Support.NamespaceParsersSectionHandler, Spring.Core" />
</sectionGroup>
</configSections>
<spring>
<context>
<!-- Application services and data access that has been previously developed and tested-->
<resource uri="assembly://DataAccess/data-access-config.xml" />
<resource uri="assembly://Services/service-config.xml" />
<resource uri="AOP.xml" />
<resource uri="DI.xml"/>
</context>
<parsers>
<parser type="Spring.Data.Config.DatabaseNamespaceParser, Spring.Data" />
<parser type="Spring.Transaction.Config.TxNamespaceParser, Spring.Data" />
<parser type="Spring.Aop.Config.AopNamespaceParser, Spring.Aop" />
</parsers>
</spring>
同樣這裏的aop.xml文件
<object id="FilterServiceProxy" type="Spring.Aop.Framework.ProxyFactoryObject, Spring.Aop">
<property name="proxyInterfaces" value="Domain.IFilterService"/>
<property name="target" ref="FilterService"/>
<property name="interceptorNames">
<list>
<value>UnhandledExceptionThrowsAdvice</value>
<value>PerformanceLoggingAroundAdvice</value>
</list>
</property>
</object>
</objects>
和DI.xml
<object type="FilterMt.WorkerRole, FilterMt" >
<property name="FilterMtService1" ref="FilterServiceProxy"/>
</object>
然而,我無法注入任何依賴關係成工作者角色。有人能讓我知道我在這裏做錯了嗎?有沒有不同的方式來配置Windows Azure應用程序的Spring.net DI?
我沒有得到任何配置錯誤,但我看到依賴關係沒有被注入,因爲我嘗試注入的屬性對象仍爲空。
所以基本上'WorkerRole'是組合根? – Marijn
我會這麼說,是的。 – astaykov
謝謝astaykov。這是解決這個問題的一個很好的方法。 – TWickz