【问题标题】:Get the latest ChangeLog token with OpenCMIS/DotCMIS使用 OpenCMIS/DotCMIS 获取最新的 ChangeLog 令牌
【发布时间】:2015-02-19 06:36:55
【问题描述】:
我有一些代码需要知道最新的ChangeToken,所以写了:
session.Clear();
var token = session.RepositoryInfo.LatestChangeLogToken;
不幸的是,它并不总是返回最新的令牌。
示例:
- 开始会话
- 运行上面的代码,我得到
72
- 在服务器上创建文件夹
- 启动CMIS Workbench,读取token,是
73
- 在同一个会话中再次运行上面的代码,我得到
72
有没有办法以某种方式“重置”会话,或者更好地清除缓存?
我不希望每次都创建新会话。
【问题讨论】:
标签:
cmis
opencmis
dotcmis
【解决方案1】:
OpenCMIS 有 Session.getLatestChangeLogToken() 方法,它的作用相同。
不需要清除缓存或获取存储库信息。
【解决方案2】:
这行得通:
session.Clear(); // Clear all caches.
session.Binding.GetRepositoryService().GetRepositoryInfos(null);
var token = session.Binding.GetRepositoryService().GetRepositoryInfo(
this.session.RepositoryInfo.Id, null).LatestChangeLogToken;
令牌始终是最新的。
不太确定是否需要前两行。