如何在其他页面的代码中访问global.asax中的属性

min*_*nty 13 c# asp.net global-asax

想象一下,我在global.asax中定义了一个属性.

public List<string> Roles
{
    get
    {
        ...
    }
    set
    {
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

我想在另一页中使用该值.我怎么称呼它?

Pan*_*nos 17

你可以像这样访问这个类:

((Global)this.Context.ApplicationInstance).Roles
Run Code Online (Sandbox Code Playgroud)

  • 我花了一些时间来理解为什么这对于在整个应用时间内存在的属性不起作用.例如:如果在上面的"Application_Start"示例中创建"角色",那么使用ApplicationInstance访问"角色"属性可能会失败,因为每个请求不只有一个"全局应用程序实例".要在global.asax中拥有全局现有属性,这些属性必须是静态的.以下博客文章帮助我了解了正在发生的事情:http://odetocode.com/articles/89.aspx (7认同)