使用 OpenCMIS/DotCMIS 获取最新的 ChangeLog 令牌

Get the latest ChangeLog token with OpenCMIS/DotCMIS

我有一些代码需要知道最新的ChangeToken,所以我写了:

session.Clear();
var token = session.RepositoryInfo.LatestChangeLogToken;

不幸的是,它并不总是 return 最新的令牌。
示例:

  1. 开始会话
  2. 运行上面的代码,我得到72
  3. 在服务器上创建一个文件夹
  4. 启动CMISWorkbench,读取token,是73
  5. 运行 上面的代码仍然在同一个会话中,我得到 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() 方法,其功能相同。 不需要清除缓存或获取存储库信息。