C# webservice 中如何保持一个对象

来源:百度知道 编辑:UC知道 时间:2024/05/15 17:51:41
我发现 C# webservice 的构造函数并是在实例webservice对象时执行的,而是在每一次调用方法里都会先执行构造函数.所以在构造函数里new出来的东西每次调用方法都会重新再new一次.所以定义在类里的变量在构造函数里写值,每次都会写,对象每次都要重新生成,请问如何才能生成一个对象实例,webservice里的方法都可访问呢?
可能是我描述的不清楚,这个问题关键点有两个 1是在webservice中,2是在构造函数中,每调用webservice类的一个方法构造函数都会执行.这是什么机制,怎么解决,再等等高手

在构造函数里面声明一个指针,指向this,就是刚刚被声明的实例,并把指针设置成公有的,如我这样:
public Mainfrm()//构造函数
{
InitializeComponent();

pCurrentWin_mainfrm = this;//保存现场
}

public static Mainfrm pCurrentWin_mainfrm = null;//构造窗体指针,并声明为共有的

然后在其他地方用类名.指针名.方法就行了

如要调用该对象的get()方法,就是Mainfrm.pCurrentWin_mainfrm.get();
我是在做窗体传参的时候用的,不知对你有不有用,自己凑一下试试。

static对象

可以使用asp.net的缓存存储。

请参看单件模式(Singleton)和Monostate Pattern。

用序列化的方式保存在文件中呗