日期:2014-05-20  浏览次数:20821 次

如何在网站中手动保持用户线程
小弟最近想学习如何写网站框架,现在遇到了这样一个问题

我申明了一个基类base,并在这个基类中定义了一个变量val
然后分别建立了新类classA和classB,在classA中设置base.val = "A",然后在classB中访问base.val,发现classB中的base.val仍是空值....
(这三个类都是页面类,classA和classB被绑定在不同页面)

我重写了.net处理页面的方法(从httpmodule的BeginRequest开始到EndRequest)..我想出现这样问题的原因可能是因为用户在访问页面时每次访问页面时都在一个不同的线程中.所以也就导致classA和classB的基类base不是同一个线程中的base...才导致无法同步.
这个是基于用户的一个类.所以无法在base中将val申明为static变量.因为这样会导致所有的网站用户都共享一个变量了.而我需要的只是一个用户在不同的页面间共享的一个变量...不知各位大侠有何高招.还请指教

------解决方案--------------------
我感觉目前你的问题不是出在aspnet的问题上,而是你C#的基础不够扎实,首先我们都知道每一个webpage都是一个类,后台的cs代码是一个partial类。
现在你的问题集中在继承的问题上,一个父类有一个属性被两个子类A,B继承,然后你在一个子类A中给父类中的属性赋值,其实现在是有两个对象A a, B b,目前父类中的那个属性其实隶属于两个对象a、b,那你怎么能在b对象中访问a对象中已赋值的属性呢?