声明将由许多 WebMethod 函数使用的单个静态变量
Declare a single static variable that will be used by many WebMethod functions
我有一个会话变量,我需要在具有许多 webmethod 函数的 cs 页面上使用它。如果我如下声明它,我并不总是得到最新的变量。有时它会给我存储在最后一个变量之前的变量。我做错了什么?
public partial class uc_functions : MyBasePage
{
static string ucService = HttpContext.Current.Session["ucService"] as string;
....
[WebMethod] //1
[WebMethod] //2
[WebMethod] //3
目前您正在初始化变量 一次,当 class 首次加载时。您希望每个请求都有不同的值。
与其使用变量,不如使用 属性 或方法。例如:
private static string Service
{
get { return (string) HttpContext.Current.Session["ucService"]; }
}
或者在 C# 6 中:
private static string Service => (string) HttpContext.Current.Session["ucService"];
(顺便说一句,我会回顾 .NET naming conventions - 一个叫做 uc_functions
的 class 让我不寒而栗...)
我有一个会话变量,我需要在具有许多 webmethod 函数的 cs 页面上使用它。如果我如下声明它,我并不总是得到最新的变量。有时它会给我存储在最后一个变量之前的变量。我做错了什么?
public partial class uc_functions : MyBasePage
{
static string ucService = HttpContext.Current.Session["ucService"] as string;
....
[WebMethod] //1
[WebMethod] //2
[WebMethod] //3
目前您正在初始化变量 一次,当 class 首次加载时。您希望每个请求都有不同的值。
与其使用变量,不如使用 属性 或方法。例如:
private static string Service
{
get { return (string) HttpContext.Current.Session["ucService"]; }
}
或者在 C# 6 中:
private static string Service => (string) HttpContext.Current.Session["ucService"];
(顺便说一句,我会回顾 .NET naming conventions - 一个叫做 uc_functions
的 class 让我不寒而栗...)