在我的一個項目中,我使用了多個存儲庫,其中一個是Umbraco內容緩存。雖然我認爲這是保持網站與Umbraco鬆散集成的好方法,但我遇到了一個問題:從控制器注入UmbracoContext.ContentCache到存儲庫,因爲UmbracoContext.ContentCache僅在頁面請求生命週期中可用。有沒有人試圖這樣做?或者它似乎是一個壞方法?我正在使用Autofac進行DI。Autofac - 注入UmbracoContext.ContentCache
2
A
回答
2
因爲UmbracoContext.Current
是在頁面生命週期中設置的單例,所以只需要將Umbraco.Core添加到存儲庫層並使用單例訪問緩存即可。所有這些都已經發生了,無需再依賴autofac來完成。另外,雖然我不確定如果這是正確的方法,但我使用autofac註冊了UmbracoHelper,它可以訪問類型化和動態緩存。
builder.Register(c => new UmbracoHelper(UmbracoContext.Current));
+1
正是我所做的@Sam ..謝謝 :) – droidbot
0
設法找到一個解決方案。我想知道contentCache引用應該在請求的上下文之外可用。在這裏,看代碼https://github.com/umbraco/Umbraco-CMS/blob/4a101786972bb591bb5d22acd043cc9f9da267ed/src/Umbraco.Web/UmbracoContext.cs
我發現這是注入contentCache下到倉庫的方式:
builder.Register(
ctx => new UmbracoContentCacheWrapper(global::Umbraco.Web.UmbracoContext.Current.ContentCache)).InstancePerHttpRequest()
.As<IContextualPublishedContentCache>();
快樂星期五一切!
相關問題
- 1. Autofac注入空
- 2. Autofac覆蓋注入
- 3. AutoFac:注入NULL值
- 4. Autofac注入枚舉
- 5. Autofac Property注入問題
- 6. Autofac惰性屬性注入
- 7. autofac - 依賴注入IHttpModule
- 8. Autofac - 將ModelState注入服務
- 9. Autofac的性能注入
- 10. Autofac依賴注入實現
- 11. Autofac財產注入System.ComponentModel.DataAnnotations ValidationAttribute
- 12. Autofac和實例注入
- 13. autofac mvc3屬性注入
- 14. 使用Autofac注入註冊類
- 15. Autofac屬性注入屬性失敗
- 16. Autofac注入到WebApi和OWIN上的ValidationAttribute
- 17. NServiceBus/MVC注入 - Autofac不喜歡IControllerFactory?
- 18. Autofac構造函數注入屬性
- 19. 依賴注入:手工VS autofac
- 20. 屬性不會通過Autofac注入
- 21. 使用autofac注入wcf通道
- 22. 使用autofac的屬性注入3.1.1
- 23. Azure函數中的Autofac依賴注入
- 24. Autofac未解析注入屬性
- 25. 使用Autofac將WebAPI UrlHelper注入服務
- 26. 注入服務爲使用Autofac
- 27. Autofac屬性注入與MVC ValidationAttribute
- 28. 使用Autofac的物業注入
- 29. 如何使用AutoFac注入參數?
- 30. WCF寧靜服務注入WebOperationContext與Autofac
我很好奇爲什麼你需要在回購層的ContentCache。你想做什麼? –
這個網站是一個非常複雜的網站,而不僅僅是在Umbraco中管理的幾個(或更多)網頁。它具有Umbraco以外的功能並與其他系統集成。因此,將Umbraco內容緩存置於服務抽象背後是有道理的。 Umbraco被用於涵蓋利益相關者的搜索引擎優化利益,併爲內容開發者提供有限的控制,以便進行實時更改,管理博客微型網站等。 – droidbot