![](/img/trans.png)
[英]Using static variables in C# Web Application - Accessing Session variables in class properties
[英]static variables in web site and web application C#
我有相同的代码,它们在2个不同的IIS服务器上的工作方式不同,其中一个设置为网站,另一个设置为Web应用程序。
我有2节课。
public class Config1{
public static string RelativePath {get; set;}
}
public class Config2{
public static readonly string FavIconPath = Config1.RelativePath;
}
我从Global.asax.cs中的web.config分配值
protected void Application_Start(){
Config1.RelativePath = getWebConfigValue("Path");
}
我在如下所示的查看文件中使用它。
RelativePath : @Config1.RelativePath<p/>
FavIconPath : @Config2.FavIconPath
结果是
On web site server
RelativePath : somevalue
FavIconPath :
On web application server
RelativePath : somevalue
FavIconPath : somevalue
网站和Web应用程序之间的实例化计时是否存在差异? 任何帮助,将不胜感激!
静态字段初始化程序(例如将初始值分配给Config2.FavIconPath
的初始化程序)在首次引用类型( Config2
)时进行处理。 这通常在您的代码首次访问它时发生,但可能会更早发生。
调用Application_Start()
方法后, Config1.RelativePath
的值将更改,因此用于FavIconPath
的实际值取决于Application_Start()
方法的顺序和要加载的Config2
类型。
即使我不知道幕后发生的事情,该代码也显示了为什么您不应该让代码依赖于框架的内部行为。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.