/// <summary> /// Starts tracking changes in the underlying <see cref="RmResource"/>. /// </summary> public void BeginChanges() { EnsureNotDisposed(); lock (rmObject.attributes) { this.originalAttributes = new Dictionary <RmAttributeName, RmAttributeValue>(); foreach (RmAttributeName key in rmObject.attributes.Keys) { RmAttributeValue value = rmObject.attributes[key]; this.originalAttributes[key] = value.Clone() as RmAttributeValue; } } }