首页 新闻 会员 周边 捐助

CallContext.GetData是什么?

0
悬赏园豆:20 [已解决问题] 解决于 2013-10-13 08:57
 1 public class DBSessionFactory:IDAL.IDBSessionFactory
 2     {
 3         /// <summary>
 4         /// 此方法的作用: 提高效率,在线程中 共用一个 DBSession 对象!
 5         /// </summary>
 6         /// <returns></returns>
 7         public IDAL.IDBSession GetDBSession()
 8         {
 9             //从当前线程中 获取 DBContext 数据仓储 对象
10             //CallContext.GetData    这个函数还不太懂
11             IDAL.IDBSession dbSesion = CallContext.GetData(typeof(DBSessionFactory).Name) as DBSession;
12             if (dbSesion == null)
13             {
14                 dbSesion = new DBSession();
15                 CallContext.SetData(typeof(DBSessionFactory).Name, dbSesion);
16             }
17             return dbSesion;
18         }
19     }

请问11行是什么意思  以前还没用过

CallContext.GetData
林武的主页 林武 | 初学一级 | 园豆:154
提问于:2013-10-12 12:57
< >
分享
最佳答案
1

CallContext能保证数据线程内唯一的容器

//在GetData方法传入name为"DbContext",在CallContext容器查找是否有"DbContext"对象
ObjectContext dbContext = (ObjectContext)CallContext.GetData("DbContext"); if (dbContext == null) { dbContext = new ModelContainer(); CallContext.SetData("DbContext", dbContext); }
收获园豆:15
秋壶冰月 | 大侠五级 |园豆:5903 | 2013-10-12 18:58
其他回答(2)
0

CallContext.GetData(),从 CallContext 中检索具有指定名称的对象。

丶夏之星 | 园豆:5 (初学一级) | 2013-10-12 13:08
0

CallContext可以理解为线程数据集合吧。

详细请看:http://msdn.microsoft.com/en-us/library/system.runtime.remoting.messaging.callcontext.aspx

相当于一个键值对数据容器,通过key获取value了。

收获园豆:5
幻天芒 | 园豆:37207 (高人七级) | 2013-10-12 13:10
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册