WebApplication / WebMethods中的静态变量

时间:2016-12-13 08:23:41

标签: c# asp.net

我的网络方法如下

static FileTypeData DataLine = null; 
static string FilePath = ""; 
static string MarketName = string.Empty; 
static string FileType = string.Empty; 

[WebMethod]
public static string GetData (string MarketName, string Category, string Symbol)
{
    MarketName = MarketName.ToLower(); 
    FileType = ""; 
    Category = Category.ToLower(); 
    Symbol = SymbolToLower(); 
    return Start();
}

MarketNameFileTypeCategorySymbolprivate static个变量。
问题是当离开GetData web方法并转移到Start方法时,这些变量将重置为其初始值,这意味着它们是空的。我想知道为什么会出现这种行为。

注意:我通过ajax请求调用此Web方法。

1 个答案:

答案 0 :(得分:1)

如果方法的参数与静态变量的名称相同,则将使用这些参数。因此,为MarketName分配值会更改参数的值,而不会更改变量的值!

要更改此设置,您必须在变量名称前面添加类的名称:

[WebMethod]
public static string GetData (string MarketName, string Category, string Symbol)
{
    MyClassName.MarketName = MarketName.ToLower(); 
    // ...
}

重要提示:如果要在Start()中使用这些值,则应传递这些参数,而不是使用静态变量!