我是Orchard CMS的新手,我已經開始編寫我的第一個模塊。我一直在尋找一種方法來檢測我的模塊何時從根網站初始化,但沒有運氣!果園模塊加載事件
一位同事建議使用WebActivator和PreApplicationStartMethod屬性來配置啓動時要調用的方法,但這不起作用。
有沒有人設法做到這一點,有沒有像IModule這樣的果園提供的接口,將允許我鉤入模塊初始化?
我是Orchard CMS的新手,我已經開始編寫我的第一個模塊。我一直在尋找一種方法來檢測我的模塊何時從根網站初始化,但沒有運氣!果園模塊加載事件
一位同事建議使用WebActivator和PreApplicationStartMethod屬性來配置啓動時要調用的方法,但這不起作用。
有沒有人設法做到這一點,有沒有像IModule這樣的果園提供的接口,將允許我鉤入模塊初始化?
你不應該混淆Autofac's和Orchard的模塊。 要在Orchard模塊啓動時執行一些代碼,您需要實現IOrchardShellEvents接口(激活方法)。也不要忘記在Autofac註冊的實現:
public class MyModule : Module
{
protected override void Load(ContainerBuilder builder)
{
builder.RegisterType<Bootstrapper>().As<IOrchardShellEvents>().InstancePerLifetimeScope();
}
}
解決!實現Autofac.Module並重載Load(ContainerBuilder)方法!
using Autofac;
public class MyModule : Module
{
protected override void Load(ContainerBuilder builder)
{
// Module initialization here!
}
}
,而這是一個切入點,這是不正確的,看到其他的答案 – 2013-06-13 12:27:48
如果這是在2011年最好的答案,這不是正確的現在回答。使用IOrchardShellEvents或IFeatureEventHandler。 – 2015-01-13 15:46:55
更具體地說,您可能需要IOrchardShellEvents,因爲您希望每次Orchard初始化時都會收到通知,而不僅僅是在您的模塊首次激活時。 – 2015-01-13 15:58:05
有兩個事件處理程序可能會讓你感興趣。 IFeatureEventHandler
和IOrchardShellEvents
。 IFeatureEventHandler
界面爲您提供啓用,禁用,安裝和卸載模塊的掛鉤。 IOrchardShellEvents
接口爲Orchard Shell的激活和終止提供了掛鉤。在那裏的東西應該爲你做的伎倆!
除了我的頭腦之外,'IOrchardShellEvents'是'IEventHandler'的一個實現,而'IEventHandler'又是'IDependency'的一個實現,所以我認爲你甚至不需要像上面說的那樣註冊你的實現。你只需要實現'IOrchardShellEvents',Orchard就會爲你註冊。 – 2014-08-05 13:48:09