<?xml version="1.0" encoding="utf-8"?>
<Type Name="CodeDomComponentSerializationService" FullName="System.ComponentModel.Design.Serialization.CodeDomComponentSerializationService">
  <TypeSignature Language="C#" Value="public sealed class CodeDomComponentSerializationService : System.ComponentModel.Design.Serialization.ComponentSerializationService" />
  <AssemblyInfo>
    <AssemblyName>System.Design</AssemblyName>
    <AssemblyVersion>2.0.0.0</AssemblyVersion>
  </AssemblyInfo>
  <Base>
    <BaseTypeName>System.ComponentModel.Design.Serialization.ComponentSerializationService</BaseTypeName>
  </Base>
  <Interfaces />
  <Docs>
    <remarks>
      <attribution license="cc4" from="Microsoft" modified="false" />
      <para>The <see cref="T:System.ComponentModel.Design.Serialization.CodeDomComponentSerializationService" /> class serializes a set of components or serializable objects into a serialization store. The store can then be deserialized at a later time. The <see cref="T:System.ComponentModel.Design.Serialization.CodeDomComponentSerializationService" /> class differs from other serialization schemes in that the serialization format is opaque, and it allows for partial serialization of objects. For example, you can choose to serialize only selected properties for an object.</para>
      <para>The base class, <see cref="T:System.ComponentModel.Design.Serialization.ComponentSerializationService" />, replaces the <see cref="T:System.ComponentModel.Design.Serialization.IDesignerSerializationService" /> interface from the .NET Framework version 1.0, although the latter is retained for backward compatibility. The <see cref="T:System.ComponentModel.Design.Serialization.CodeDomComponentSerializationService" /> class does not implement the <see cref="T:System.ComponentModel.Design.Serialization.IDesignerSerializationService" /> interface, but if you query for <see cref="T:System.ComponentModel.Design.Serialization.IDesignerSerializationService" />, the <see cref="T:System.ComponentModel.Design.Serialization.CodeDomDesignerLoader" /> provides a bridge implementation to ensure backward compatibility.</para>
    </remarks>
    <summary>
      <attribution license="cc4" from="Microsoft" modified="false" />
      <para>Serializes a set of components into a serialization store.</para>
    </summary>
  </Docs>
  <Members>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public CodeDomComponentSerializationService ();" />
      <MemberType>Constructor</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <Parameters />
      <Docs>
        <remarks>To be added.</remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Initializes a new instance of the <see cref="T:System.ComponentModel.Design.Serialization.CodeDomComponentSerializationService" /> class. </para>
        </summary>
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public CodeDomComponentSerializationService (IServiceProvider provider);" />
      <MemberType>Constructor</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <Parameters>
        <Parameter Name="provider" Type="System.IServiceProvider" />
      </Parameters>
      <Docs>
        <remarks>To be added.</remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Initializes a new instance of the <see cref="T:System.ComponentModel.Design.Serialization.CodeDomComponentSerializationService" /> class using the given service provider to resolve services.</para>
        </summary>
        <param name="provider">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.IServiceProvider" /> to use for resolving services.</param>
      </Docs>
    </Member>
    <Member MemberName="CreateStore">
      <MemberSignature Language="C#" Value="public override System.ComponentModel.Design.Serialization.SerializationStore CreateStore ();" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.ComponentModel.Design.Serialization.SerializationStore</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The serialization store can be passed to any of the <see cref="M:System.ComponentModel.Design.Serialization.CodeDomComponentSerializationService.Serialize(System.ComponentModel.Design.Serialization.SerializationStore,System.Object)" /> methods to build up serialization state for a group of objects.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Creates a new <see cref="T:System.ComponentModel.Design.Serialization.SerializationStore" />.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>A new serialization store.</para>
        </returns>
      </Docs>
    </Member>
    <Member MemberName="Deserialize">
      <MemberSignature Language="C#" Value="public override System.Collections.ICollection Deserialize (System.ComponentModel.Design.Serialization.SerializationStore store);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Collections.ICollection</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="store" Type="System.ComponentModel.Design.Serialization.SerializationStore" />
      </Parameters>
      <Docs>
        <remarks>To be added.</remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Deserializes the given store to produce a collection of objects.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>A collection of deserialized components.</para>
        </returns>
        <param name="store">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.ComponentModel.Design.Serialization.SerializationStore" /> from which objects will be deserialized.</param>
      </Docs>
    </Member>
    <Member MemberName="Deserialize">
      <MemberSignature Language="C#" Value="public override System.Collections.ICollection Deserialize (System.ComponentModel.Design.Serialization.SerializationStore store, System.ComponentModel.IContainer container);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Collections.ICollection</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="store" Type="System.ComponentModel.Design.Serialization.SerializationStore" />
        <Parameter Name="container" Type="System.ComponentModel.IContainer" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Created objects that implement the <see cref="T:System.ComponentModel.IComponent" /> interface will be added to the <paramref name="container" /> parameter.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Deserializes the given store and populates the given <see cref="T:System.ComponentModel.IContainer" /> with deserialized <see cref="T:System.ComponentModel.IComponent" /> objects.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>A collection of deserialized components.</para>
        </returns>
        <param name="store">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.ComponentModel.Design.Serialization.SerializationStore" /> from which objects will be deserialized.</param>
        <param name="container">
          <attribution license="cc4" from="Microsoft" modified="false" />A container to which <see cref="T:System.ComponentModel.IComponent" />  objects will be added.</param>
      </Docs>
    </Member>
    <Member MemberName="DeserializeTo">
      <MemberSignature Language="C#" Value="public override void DeserializeTo (System.ComponentModel.Design.Serialization.SerializationStore store, System.ComponentModel.IContainer container, bool validateRecycledTypes, bool applyDefaults);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="store" Type="System.ComponentModel.Design.Serialization.SerializationStore" />
        <Parameter Name="container" Type="System.ComponentModel.IContainer" />
        <Parameter Name="validateRecycledTypes" Type="System.Boolean" />
        <Parameter Name="applyDefaults" Type="System.Boolean" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.ComponentModel.Design.Serialization.CodeDomComponentSerializationService.DeserializeTo(System.ComponentModel.Design.Serialization.SerializationStore,System.ComponentModel.IContainer,System.Boolean,System.Boolean)" /> method deserializes the given store, but rather than producing new objects, the data in the store is applied to an existing set of objects that are taken from the <paramref name="container" /> parameter. As a result, the caller can create in advance an object however it sees fit. If an object has deserialization state and the object is not named in the set of existing objects, a new object will be created. If that object also implements <see cref="T:System.ComponentModel.IComponent" />, it will be added to the given container. Objects in the container must have names and types that match objects in the serialization store in order for an existing object to be used.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Deserializes the given <see cref="T:System.ComponentModel.Design.Serialization.SerializationStore" /> to the given container, optionally applying default property values.</para>
        </summary>
        <param name="store">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.ComponentModel.Design.Serialization.SerializationStore" />  from which the objects will be deserialized.</param>
        <param name="container">
          <attribution license="cc4" from="Microsoft" modified="false" />A container of objects to which data will be applied.</param>
        <param name="validateRecycledTypes">
          <attribution license="cc4" from="Microsoft" modified="false" />true to validate the recycled type; otherwise, false.</param>
        <param name="applyDefaults">
          <attribution license="cc4" from="Microsoft" modified="false" />true to apply default property values; otherwise, false.</param>
      </Docs>
    </Member>
    <Member MemberName="LoadStore">
      <MemberSignature Language="C#" Value="public override System.ComponentModel.Design.Serialization.SerializationStore LoadStore (System.IO.Stream stream);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.ComponentModel.Design.Serialization.SerializationStore</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="stream" Type="System.IO.Stream" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>You can use the returned store to deserialize objects by passing it to the various <see cref="Overload:System.ComponentModel.Design.Serialization.CodeDomComponentSerializationService.Deserialize" /> methods.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Loads a <see cref="T:System.ComponentModel.Design.Serialization.SerializationStore" /> from the given stream.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The loaded <see cref="T:System.ComponentModel.Design.Serialization.SerializationStore" />.</para>
        </returns>
        <param name="stream">
          <attribution license="cc4" from="Microsoft" modified="false" />The stream from which to load the <see cref="T:System.ComponentModel.Design.Serialization.SerializationStore" />.</param>
      </Docs>
    </Member>
    <Member MemberName="Serialize">
      <MemberSignature Language="C#" Value="public override void Serialize (System.ComponentModel.Design.Serialization.SerializationStore store, object value);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="store" Type="System.ComponentModel.Design.Serialization.SerializationStore" />
        <Parameter Name="value" Type="System.Object" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <paramref name="store" /> parameter can be used to serialize more than one object by calling this method once for each object.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Serializes the given object to the given <see cref="T:System.ComponentModel.Design.Serialization.SerializationStore" />.</para>
        </summary>
        <param name="store">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.ComponentModel.Design.Serialization.SerializationStore" />  to which <paramref name="value" /> will be serialized. </param>
        <param name="value">
          <attribution license="cc4" from="Microsoft" modified="false" />The object to serialize.</param>
      </Docs>
    </Member>
    <Member MemberName="SerializeAbsolute">
      <MemberSignature Language="C#" Value="public override void SerializeAbsolute (System.ComponentModel.Design.Serialization.SerializationStore store, object value);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="store" Type="System.ComponentModel.Design.Serialization.SerializationStore" />
        <Parameter Name="value" Type="System.Object" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The store can be used to serialize more than one object by calling this method more than once.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Serializes the given object, accounting for default property values.</para>
        </summary>
        <param name="store">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.ComponentModel.Design.Serialization.SerializationStore" />  to which <paramref name="value" /> will be serialized. </param>
        <param name="value">
          <attribution license="cc4" from="Microsoft" modified="false" />The object to serialize.</param>
      </Docs>
    </Member>
    <Member MemberName="SerializeMember">
      <MemberSignature Language="C#" Value="public override void SerializeMember (System.ComponentModel.Design.Serialization.SerializationStore store, object owningObject, System.ComponentModel.MemberDescriptor member);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="store" Type="System.ComponentModel.Design.Serialization.SerializationStore" />
        <Parameter Name="owningObject" Type="System.Object" />
        <Parameter Name="member" Type="System.ComponentModel.MemberDescriptor" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method can be invoked multiple times for the same object to build up a list of serialized members within the serialization store. The member generally has to be a property or an event.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Serializes the given member on the given object.</para>
        </summary>
        <param name="store">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.ComponentModel.Design.Serialization.SerializationStore" />  to which <paramref name="member" /> will be serialized. </param>
        <param name="owningObject">
          <attribution license="cc4" from="Microsoft" modified="false" />The object that owns the <paramref name="member" />.</param>
        <param name="member">
          <attribution license="cc4" from="Microsoft" modified="false" />The given member.</param>
      </Docs>
    </Member>
    <Member MemberName="SerializeMemberAbsolute">
      <MemberSignature Language="C#" Value="public override void SerializeMemberAbsolute (System.ComponentModel.Design.Serialization.SerializationStore store, object owningObject, System.ComponentModel.MemberDescriptor member);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="store" Type="System.ComponentModel.Design.Serialization.SerializationStore" />
        <Parameter Name="owningObject" Type="System.Object" />
        <Parameter Name="member" Type="System.ComponentModel.MemberDescriptor" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>For some members, containing the default property value and setting the same value back to the member are different concepts. For example, if a property inherits its value from a parent object if no local value is set, setting the value back to the property may not be what is desired. The <see cref="M:System.ComponentModel.Design.Serialization.CodeDomComponentSerializationService.SerializeMemberAbsolute(System.ComponentModel.Design.Serialization.SerializationStore,System.Object,System.ComponentModel.MemberDescriptor)" /> method takes this into account and would clear the state of the property in this case.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Serializes the given member on the given object, but also serializes the member if it contains the default property value.</para>
        </summary>
        <param name="store">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.ComponentModel.Design.Serialization.SerializationStore" />  to which <paramref name="member" /> will be serialized. </param>
        <param name="owningObject">
          <attribution license="cc4" from="Microsoft" modified="false" />The object that owns the <paramref name="member" />.</param>
        <param name="member">
          <attribution license="cc4" from="Microsoft" modified="false" />The given member.</param>
      </Docs>
    </Member>
  </Members>
</Type>