Свойство фабрики программного обеспечения веб-клиента CreateNewAttribute не работает в global.asax - PullRequest
0 голосов
/ 06 августа 2009

Мы используем следующий код в коде страницы

[CreateNew]
public AdminController Controller { get; set; }

и следующий код в классе контроллера

[ServiceDependency]
public IAdminService Adminervice { get; set; }

это нормально работает для обычной страницы aspx.

Я хотел бы проверить стартовое событие Session в своем приложении, и для этого я использую события global.asax.

Однако контроллер здесь не был создан

protected override void PrePageExecute(System.Web.UI.Page page)
{

    if (Controller == null)
    {
           // controller is null...
    }
}

Как я могу получить доступ к контроллеру с глобальной страницы, используя атрибут [CreateNew]?

1 Ответ

0 голосов
/ 13 августа 2009

Я не понял, как получить доступ к контроллеру, но я мог получить службу с помощью следующего фрагмента кода.

[ServiceDependency]
public ICommonService CommonService { get; set; }

protected override void PrePageExecute(System.Web.UI.Page page)
{
    if (Session.IsNewSession)
    {
        if (CommonService == null)
        {
            WebClientApplication.BuildItemWithCurrentContext(this);
        }
        CommonService.AuditTrailLogin(true);
    }
}
...