使用 OpenCMIS/DotCMIS 获取最新的 ChangeLog 令牌
Get the latest ChangeLog token with OpenCMIS/DotCMIS
我有一些代码需要知道最新的ChangeToken,所以我写了:
session.Clear();
var token = session.RepositoryInfo.LatestChangeLogToken;
不幸的是,它并不总是 return 最新的令牌。
示例:
- 开始会话
- 运行上面的代码,我得到
72
- 在服务器上创建一个文件夹
- 启动CMISWorkbench,读取token,是
73
- 运行 上面的代码仍然在同一个会话中,我得到
72
<-- 问题
有没有办法以某种方式 "reset" 会话,或者更好地清除缓存?
我不想每次都创建一个新会话。
这个有效:
session.Clear(); // Clear all caches.
session.Binding.GetRepositoryService().GetRepositoryInfos(null);
var token = session.Binding.GetRepositoryService().GetRepositoryInfo(
this.session.RepositoryInfo.Id, null).LatestChangeLogToken;
令牌始终是最新的。
不太确定是否需要前两行。
OpenCMIS 有 Session.getLatestChangeLogToken()
方法,其功能相同。
不需要清除缓存或获取存储库信息。
我有一些代码需要知道最新的ChangeToken,所以我写了:
session.Clear();
var token = session.RepositoryInfo.LatestChangeLogToken;
不幸的是,它并不总是 return 最新的令牌。
示例:
- 开始会话
- 运行上面的代码,我得到
72
- 在服务器上创建一个文件夹
- 启动CMISWorkbench,读取token,是
73
- 运行 上面的代码仍然在同一个会话中,我得到
72
<-- 问题
有没有办法以某种方式 "reset" 会话,或者更好地清除缓存?
我不想每次都创建一个新会话。
这个有效:
session.Clear(); // Clear all caches.
session.Binding.GetRepositoryService().GetRepositoryInfos(null);
var token = session.Binding.GetRepositoryService().GetRepositoryInfo(
this.session.RepositoryInfo.Id, null).LatestChangeLogToken;
令牌始终是最新的。
不太确定是否需要前两行。
OpenCMIS 有 Session.getLatestChangeLogToken()
方法,其功能相同。
不需要清除缓存或获取存储库信息。