protected override void OnSetReadOnly(ReadOnlyStateTag previousState, ReadOnlyStateTag newState) { this.EnsureChangeToPermanentReadOnly(newState: newState); // base.OnSetReadOnly(previousState: previousState, newState: newState); // IReadOnlyScope metadataAsReadOnlyScope = ReadDA(ref _metadataLink, considerDisposeRequest: true)?.Target.Value; metadataAsReadOnlyScope?.SetReadOnly(isReadOnly: newState.IsReadOnly, isPermanent: newState.IsPermanent); }
protected override void OnSetReadOnly(ReadOnlyStateTag previousState, ReadOnlyStateTag newState) { this.EnsureChangeToPermanentReadOnly(newState: newState); // base.OnSetReadOnly(previousState, newState); // IReadOnlyScope metadataElementAsReadOnlyScope = ReadDA(ref _metadataElement, considerDisposeRequest: true); metadataElementAsReadOnlyScope?.SetReadOnly(isReadOnly: newState.IsReadOnly, isPermanent: newState.IsPermanent); // foreach (var childNode in EnumerateDA(ReadDA(ref _children, considerDisposeRequest: true), considerDisposeRequest: true).OfType <IReadOnlyScope>()) { childNode.SetReadOnly(isReadOnly: newState.IsReadOnly, isPermanent: newState.IsPermanent); } // foreach (var inclusion in EnumerateDA(ReadDA(ref _inclusions, considerDisposeRequest: true), considerDisposeRequest: true).OfType <IReadOnlyScope>()) { inclusion.SetReadOnly(isReadOnly: newState.IsReadOnly, isPermanent: newState.IsPermanent); } }