我有一些代码需要知道最新的ChangeToken,所以我写了:
session.Clear();
var token = session.RepositoryInfo.LatestChangeLogToken;
不幸的是,它并不总是返回最新的令牌
示例:
- 启动会话
- 运行上面的代码,我得到
72
- 在服务器上创建文件夹
- 启动CMIS工作台,读取令牌,它是
73
- 在同一会话中再次运行上面的代码,得到
72
<--问题
有没有办法以某种方式"重置"会话,或者更好地清除缓存
我不希望每次都创建一个新会话。
OpenCMIS有用于此的Session.getLatestChangeLogToken()
方法,它也做同样的事情。不需要清除缓存或获取存储库信息。
这是有效的:
session.Clear(); // Clear all caches.
session.Binding.GetRepositoryService().GetRepositoryInfos(null);
var token = session.Binding.GetRepositoryService().GetRepositoryInfo(
this.session.RepositoryInfo.Id, null).LatestChangeLogToken;
令牌始终是最新的
不太确定前两行是否需要。