个人觉得object标记应该就是定义一个全局静态变量.那定义后,我应该如何引用它?
在Application_Start事件中,我尝试对它初始化,VS又提示是只读属性.
那我应该如何对它进行初始化?
<%@ Application Language="C#" %>
<object Id="gObject1" Class="System.Int32" RunAt="server" Scope="application"/>
<script runat="server">
void Application_Start(object sender, EventArgs e)
{
//在应用程序启动时运行的代码
this.gObject1= 0; //VS的IntelliSense又提示属性是只读的..
}
void Application_End(object sender, EventArgs e)
{
//在应用程序关闭时运行的代码
}
void Application_Error(object sender, EventArgs e)
{
//在出现未处理的错误时运行的代码
}
void Session_Start(object sender, EventArgs e)
{
//在新会话启动时运行的代码
}
void Session_End(object sender, EventArgs e)
{
//在会话结束时运行的代码。
// 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为
// InProc 时,才会引发 Session_End 事件。如果会话模式
//设置为 StateServer 或 SQLServer,则不会引发该事件。
}
</script>
你不如直接在你的Global的cs文件中定义一个public static的int变量.
静态方法不对特定的实例操作,只能访问静态成员,所以不能用this。
可以这样
<script runat="server">
public static int gObject1;
void Application_Start(object sender, EventArgs e)
{
//在应用程序启动时运行的代码
gObject1= 0;
}
<object Id="gObject1" Class="System.Int32" RunAt="server" Scope="application"/>
void Application_Start(object sender, EventArgs e)
{
//在应用程序启动时运行的代码
//gObject1= 0; //VS的IntelliSense又提示属性是只读的..
Application["gObject1"] = 100;
}
//aspx页面这样访问
<form id="form1" runat="server">
<div>
<%=Application["gObject1"]%>
</div>
</form>