Событие загрузки модуля Orchard - PullRequest
2 голосов
/ 19 декабря 2011

Я очень плохо знаком с Orchard CMS и начал писать свой первый модуль.Я искал способ определить, когда мой модуль был инициализирован с корневого сайта, но мне не повезло!

Коллега предложил использовать WebActivator и атрибут PreApplicationStartMethod для настройки метода, вызываемого при запуске, но это не сработало.

Кому-нибудь удалось это сделать, есть ли интерфейс, предоставленныйсад, как IModule, который позволит мне подключиться к инициализации модуля?

Ответы [ 3 ]

5 голосов
/ 27 января 2012

Есть два обработчика событий, которые могут вас заинтересовать. IFeatureEventHandler и IOrchardShellEvents. Интерфейс IFeatureEventHandler дает вам возможность подключать, отключать, устанавливать и удалять модули. Интерфейс IOrchardShellEvents обеспечивает ловушки для активации и завершения оболочки Orchard. Что-то там должно помочь тебе!

3 голосов
/ 07 мая 2012

Вы не должны смешивать модули Autofac и Orchard.Чтобы выполнить некоторый код при запуске модуля Orchard, вам необходимо реализовать интерфейс IOrchardShellEvents (метод Activated).Также не забудьте зарегистрировать свою реализацию в Autofac:

public class MyModule : Module
{
    protected override void Load(ContainerBuilder builder)
    {
        builder.RegisterType<Bootstrapper>().As<IOrchardShellEvents>().InstancePerLifetimeScope();
    }
}
0 голосов
/ 20 декабря 2011

Решено!Реализуйте Autofac.Module и переопределите метод Load (ContainerBuilder)!

using Autofac;

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