public void Dispose() { if (this.ownsTokens) { foreach (var memberToken in MemberTokens.Values.ToList()) memberToken.Dispose(); } if (this.disposeAction != null) this.disposeAction(this); }