/// <summary> /// Frees managed resources used by the /// <see cref="IntermediateGenericSegmentableParentType{TTypeIdentifier, TType, TIntermediateType, TInstanceIntermediateType}"/>. /// </summary> public override void Dispose() { try { if (this.classes != null) { this.classes.Dispose(); this.classes = null; } if (this.enums != null) { this.enums.Dispose(); this.enums = null; } if (this.delegates != null) { this.delegates.Dispose(); this.delegates = null; } if (this.interfaces != null) { this.interfaces.Dispose(); this.interfaces = null; } if (this.structs != null) { this.structs.Dispose(); this.structs = null; } if (this.types != null) { if (this.IsRoot) { this.types.Dispose(); } else { this.types.ConditionalRemove(this); } this.types = null; } if (this.scopeCoercions != null) { this.scopeCoercions = null; } } finally { base.Dispose(); } }
/// <summary> /// Disposes the <see cref="IntermediateNamespaceDeclaration"/> /// </summary> /// <param name="disposing">whether to dispose the managed /// resources as well as the unmanaged resources.</param> protected override void Dispose(bool disposing) { try { if (disposing) { lock (this.SyncObject) { this.parent = null; if (this.methods != null) { this.methods.Dispose(); this.methods = null; } if (this.fields != null) { this.fields.Dispose(); this.fields = null; } if (this.members != null) { if (this.IsRoot) { this.members.Dispose(); } else { this.members.ConditionalRemove(this); } this.members = null; } if (this.classes != null) { this.classes.Dispose(); this.classes = null; } if (this.enums != null) { this.enums.Dispose(); this.enums = null; } if (this.delegates != null) { this.delegates.Dispose(); this.delegates = null; } if (this.interfaces != null) { this.interfaces.Dispose(); this.interfaces = null; } if (this.structs != null) { this.structs.Dispose(); this.structs = null; } if (this.types != null) { if (this.IsRoot) { this.types.Dispose(); } else { this.types.ConditionalRemove(this); } this.types = null; } if (this.namespaces != null) { this.namespaces.Dispose(); this.namespaces = null; } this.scopeCoercions = null; } } } finally { base.Dispose(disposing); } }