我想知道如何在Web服务C#类的构造函数中初始化一些静态变量,以便每次调用Web方法都可以使用这些变量的内容。例如,我想从数据库加载一些数据并在Web方法中使用它。这种静态变量是只读的。目的是只加载一次这样的值。或者每次调用Web方法时都会执行构造函数?
答案 0 :(得分:9)
是的,每个请求都会生成Web Service类的新实例。
但是,您可以使用静态构造函数来初始化一些静态字段。请注意,这些字段对于所有用户和您的Web服务的所有请求都是通用的。
public class WebService1 : System.Web.Services.WebService
{
public static int loadedFromDataBase;
static WebService1()
{
loadedFromDataBase = ...
}
[WebMethod]
public string HelloWorld()
{
return loadedFromDataBase.ToString();
}
}