如何在Web服务中初始化静态变量

Edu*_*uro 5 .net c# web-services

我想知道如何在Web服务C#类的构造函数中初始化一些静态变量,以便每次调用Web方法都可以使用这些变量的内容.例如,我想从数据库加载一些数据并在Web方法中使用它.这种静态变量是只读的.目的是只加载一次这样的值.或者每次调用Web方法时都会执行构造函数?

SWe*_*eko 10

是的,每个请求都会生成Web Service类的新实例.

但是,您可以使用静态构造函数,它将初始化一些静态字段.请注意,这些字段对于所有用户和Web服务的所有请求都是通用的.

public class WebService1 : System.Web.Services.WebService
{

    public static int loadedFromDataBase;

    static WebService1()
    {
        loadedFromDataBase = ...
    }

    [WebMethod]
    public string HelloWorld()
    {
        return loadedFromDataBase.ToString();
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 每次都不加载loadedFromDataBase,它只加载一次,并且每次请求都会共享它. (3认同)