| File: System\ComponentModel\Design\Serialization\SerializationStore.cs | Web Access |
| Project: src\runtime\src\libraries\System.ComponentModel.TypeConverter\src\System.ComponentModel.TypeConverter.csproj (System.ComponentModel.TypeConverter) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System.Collections; using System.IO; namespace System.ComponentModel.Design.Serialization { /// <summary> /// The SerializationStore class is an implementation-specific class that stores /// serialization data for the component serialization service. The /// service adds state to this serialization store. Once the store is /// closed it can be saved to a stream. A serialization store can be /// deserialized at a later date by the same type of serialization service. /// SerializationStore implements the IDisposable interface such that Dispose /// simply calls the Close method. Dispose is implemented as a private /// interface to avoid confusion. The IDisposable pattern is provided /// for languages that support a "using" syntax like C# and VB .NET. /// </summary> public abstract class SerializationStore : IDisposable { /// <summary> /// If there were errors generated during serialization or deserialization of the store, they will be /// added to this collection. /// </summary> public abstract ICollection Errors { get; } /// <summary> /// The Close method closes this store and prevents any objects /// from being serialized into it. Once closed, the serialization store may be saved. /// </summary> public abstract void Close(); /// <summary> /// The Save method saves the store to the given stream. If the store /// is open, Save will automatically close it for you. You /// can call save as many times as you wish to save the store /// to different streams. /// </summary> public abstract void Save(Stream stream); /// <summary> /// Disposes this object by calling the Close method. /// </summary> void IDisposable.Dispose() => Dispose(true); protected virtual void Dispose(bool disposing) { if (disposing) { Close(); } } } }