5

是否可以使用OrchardCMS執行屬性注入?如何使Autofac在Orchard CMS中執行屬性注入CMS

我知道Orchard使用Autofac並且Autofac確實執行屬性注入,但我需要知道如何爲IOrchardServices接口執行屬性注入。

我們的團隊正在關注Orchard,但我們的代碼庫全部位於ASP.NET 4.0 WebForms中,因此我們將繼續提供aspx頁面,並在時間允許的情況下將這些頁面緩慢遷移到Orchard。

因此,我們需要一種方法來訪問OrchardServices對象。我在想,這是我必須自己提出的事情。 有沒有人有任何在烏節路上進行房產注入的好例子?

回答

3

這很簡單 - 查看源代碼如何完成​​接口,併爲IOrchardServices執行相同操作。源文件是Orchard.Framework/Logging/LoggingModule.cs。這正是你在找的東西,我猜。
一切都通過Autofac模塊完成(實施Autofac.Module類)。什麼是類所做的是:

  • 註冊的​​接口(Load法)和
  • 實施得到處理的對象的屬性,並設置適當的一些反對從容器(AttachToComponentRegistration法)解決。

很簡單。 Autofac模塊是插入DI過程的好方法。

只要將該源文件複製到您的自定義果園模塊並將​​更改爲IOrchardServices(當然還有註冊類)就足夠了。我提到的類使用工廠模式來創建實例,但是您可以通過新的將其更改爲簡單的對象創建,並擺脫與工廠有關的事情。

+0

非常好!感謝您指出LoggingModule作爲例子,給出了我需要的具體示例:D – defines