2011-12-19 55 views
2

我是Orchard CMS的新手,我已經開始編寫我的第一個模塊。我一直在尋找一種方法來檢測我的模塊何時從根網站初始化,但沒有運氣!果園模塊加載事件

一位同事建議使用WebActivator和PreApplicationStartMethod屬性來配置啓動時要調用的方法,但這不起作用。

有沒有人設法做到這一點,有沒有像IModule這樣的果園提供的接口,將允許我鉤入模塊初始化?

回答

3

你不應該混淆Autofac's和Orchard的模塊。 要在Orchard模塊啓動時執行一些代碼,您需要實現IOrchardShellEvents接口(激活方法)。也不要忘記在Autofac註冊的實現:

public class MyModule : Module 
{ 
    protected override void Load(ContainerBuilder builder) 
    { 
     builder.RegisterType<Bootstrapper>().As<IOrchardShellEvents>().InstancePerLifetimeScope(); 
    } 
} 
+0

除了我的頭腦之外,'IOrchardShellEvents'是'IEventHandler'的一個實現,而'IEventHandler'又是'IDependency'的一個實現,所以我認爲你甚至不需要像上面說的那樣註冊你的實現。你只需要實現'IOrchardShellEvents',Orchard就會爲你註冊。 – 2014-08-05 13:48:09

0

解決!實現Autofac.Module並重載Load(ContainerBuilder)方法!

using Autofac; 

public class MyModule : Module 
{ 
    protected override void Load(ContainerBuilder builder) 
    { 
     // Module initialization here! 
    } 
} 
+1

,而這是一個切入點,這是不正確的,看到其他的答案 – 2013-06-13 12:27:48

+0

如果這是在2011年最好的答案,這不是正確的現在回答。使用IOrchardShellEvents或IFeatureEventHandler。 – 2015-01-13 15:46:55

+1

更具體地說,您可能需要IOrchardShellEvents,因爲您希望每次Orchard初始化時都會收到通知,而不僅僅是在您的模塊首次激活時。 – 2015-01-13 15:58:05

5

有兩個事件處理程序可能會讓你感興趣。 IFeatureEventHandlerIOrchardShellEventsIFeatureEventHandler界面爲您提供啓用,禁用,安裝和卸載模塊的掛鉤。 IOrchardShellEvents接口爲Orchard Shell的激活和終止提供了掛鉤。在那裏的東西應該爲你做的伎倆!