什么是设置全局变量的最佳方式,我可以通过.net站点访问该变量。 基本上我想把它用作我可以从任何页面引用的是/否类型的标志。
感谢
答案 0 :(得分:2)
通常,全局变量是不受欢迎的,但如果它适合您的设计选择,那么您可以使用静态类,使用静态成员。
答案 1 :(得分:2)
尚未详细描述的一种方法(虽然提到过)是使用AppSetting
文件中的web.config
值。
首先,在web.config
文件的<configuration>
下添加以下内容:
<appSettings>
<add key="MyGlobalVar" value="true"/>
</appSettings>
<appSettings>
部分可能已经存在,在这种情况下只需添加<add ...
即可。
其次,为了能够从中读取,请在项目中添加对System.Configuration
程序集的引用。
最后要从任何页面读取值,请输入以下代码:
string myGlobalValue = System.Configuration.ConfigurationManager.AppSettings["MyGlobalVar"];
然后,您可以更改.config
文件中的值,保存它将使Web应用程序“重新启动”,因为池将被回收。
答案 2 :(得分:1)
这是一个非常简单的问题。您可以在任何地方创建和设置公共静态bool变量。一个例子是:
public static class ProgramSettings
{
public static bool Flag = false;
}
但是如果要在不编译的情况下更改标志值,可以使用配置设置。 (web.config中)
答案 3 :(得分:1)
您可以使用 static 关键字。另外,我建议您在c#
中查看 enumerations答案 4 :(得分:1)
因为你说标志我会使用const
,因为它可以防止在代码中的任何地方更改bool:
public static class ApplicationFlags
{
public const bool MyFlag = false;
}
if (ApplicationFlags.MyFlag)
Reponse.Write("Ohh, my!");
您也可以使用静态字段。请注意,静态字段不是线程安全的。如果你在一个线程(一个http请求)中更改它们,它也将被更改为所有其他线程。
答案 5 :(得分:0)
如果您希望为每个用户存储这些内容,并且由于用户执行了某些操作,他们可能会定期更改,那么最好使用session variables。
VB:
Session("FirstName") = FirstNameTextBox.Text
Session("LastName") = LastNameTextBox.Text
C#:
Session["FirstName"] = FirstNameTextBox.Text;
Session["LastName"] = LastNameTextBox.Text;
您可以在会话中存储任何引用或值类型。请记住,只要这些值持续存在,它们就会在服务器上为任何设置了这些变量的用户占用RAM。
如果要存储用于所有用户的全局变量,则可以使用global static variables。
如果你已经知道价值并且它永远不会改变,那么你可以做类似的事情:
static string ImportantData = @"Some String That Will Never Change";
答案 6 :(得分:0)
是的,因为TakeMeAsAGuest说
使一个类静态具有您想要的所有配置值
public static class ProgramSettings
{
private static bool _flag = false;
public static bool Flag
{
get { return _flag; }
set { _flag = value; }
}
}
在应用程序启动时根据需要设置属性并从xml文件中读取它或通过添加web.config从web.config中读取它。
<appSettings>
<add key="flag" value="true" />
</appSettings>
并在application_start中读取它,如
using System.Configuration;
ProgramSettings.Flag = ConfigurationManager.AppSettings["flag"]
我的问候
答案 7 :(得分:0)
您可以使用Application Object
创建一个变量。
将以下代码添加到Global.asax文件的代码隐藏模块中的Application_Start
事件中:
Application("abc") = "hi"