Web客户端软件工厂CreateNewAttribute属性不在global.asax中工作

时间:2009-08-06 03:47:16

标签: dependency-injection global-asax

我们在页面后面的代码中使用以下代码

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

以及控制器类中的以下代码

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

这适用于普通的aspx页面。

我想在我的应用程序中审核会话启动事件,并且我正在使用global.asax事件来执行此操作。

但是控制器尚未在此处实例化

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

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

如何使用[CreateNew]属性从全局页面访问控制器?

1 个答案:

答案 0 :(得分:0)

我没有弄清楚如何访问控制器,但我可以通过以下代码片段获得服务。

[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);
    }
}