Smobiler上海石磨_.NET移动开发平台

标题: Session是会话变量,有没有全局变量呢? [打印本页]

作者: Csharp    时间: 2016-5-19 17:49
标题: Session是会话变量,有没有全局变量呢?
Session是会话变量,有没有全局(所有客户端共享,共用的)变量呢? 类似ASP中的Application变量。

作者: Lincy.Lin    时间: 2016-5-20 10:27
全局变量写入是比较灵活的方式,可以写一个全局类,在全局类里面定义全局变量,例如:
  1. public class GlobalVariable
  2. {
  3.    private static string mUser;
  4.         /// <summary>
  5.         /// 获取用户
  6.         /// </summary>
  7.         /// <value></value>
  8.         /// <returns></returns>
  9.         /// <remarks></remarks>
  10.         public static string User {
  11.                 get {
  12.                         return mUser;
  13.                 }
  14.                set {
  15.                         mUser=value;
  16.                 }
  17.         }
  18. }
复制代码



作者: Csharp    时间: 2016-5-22 11:53
Lincy.Lin 发表于 2016-5-20 10:27
全局变量写入是比较灵活的方式,可以写一个全局类,在全局类里面定义全局变量,例如:

...

这样的确可以,如果平台能封装一个类似session的 KV 就更优雅一点了。
作者: oudi    时间: 2016-5-23 09:51
Csharp 发表于 2016-5-22 11:53
这样的确可以,如果平台能封装一个类似session的 KV 就更优雅一点了。

使用this.Client.Session是基于会话的变量,添加一个基于KV的全局变量一方面对于多线程操作是没有控制的,另外一方面也不包含基于全局变量的Function,所以为了使用上的灵活性,建议需要开发者自己实现全局变量。
作者: Csharp    时间: 2016-5-24 14:46
本帖最后由 Csharp 于 2016-5-24 14:47 编辑
oudi 发表于 2016-5-23 09:51
使用this.Client.Session是基于会话的变量,添加一个基于KV的全局变量一方面对于多线程操作是没有控制的 ...

可以在多线程上,借用 asp 中的  lock    unlock  的方式,写入读取时 lock 完毕后  unlock  类似这种代码:
Application.Lock
Application("NumVisits")=Application("NumVisits") + 1
Application.Unlock





欢迎光临 Smobiler上海石磨_.NET移动开发平台 (https://www.smobiler.com/) Powered by Discuz! X3.2