# C1.Win.List.Util.Xml.Serialization

## Content

<div class="doc-site-dotnet-api-container">

  <h1 id="C1_Win_List_Util_Xml_Serialization" data-uid="C1.Win.List.Util.Xml.Serialization" class="text-break">C1.Win.List.Util.Xml.Serialization Namespace
</h1>
  <div class="markdown level0 summary"></div>
  <div class="markdown level0 conceptual"></div>
  <div class="markdown level0 remarks"></div>
    <h3 id="classes">
Classes
</h3>
      <h4><a class="xref" href="C1.Win.List.Util.Xml.Serialization.C1Stack.html">C1Stack</a></h4>
      <section><p>Simple stack with indexed access, based on System.Collections.ArrayList</p>
</section>
      <h4><a class="xref" href="C1.Win.List.Util.Xml.Serialization.CollectionElementTypeAttribute.html">CollectionElementTypeAttribute</a></h4>
      <section><p>This attribute allows to specify collection's element type name
(in that case there is no need to store it).</p>
</section>
      <h4><a class="xref" href="C1.Win.List.Util.Xml.Serialization.LongOpInProgressArgs.html">LongOpInProgressArgs</a></h4>
      <section></section>
      <h4><a class="xref" href="C1.Win.List.Util.Xml.Serialization.MemberTypeEncoderHelper.html">MemberTypeEncoderHelper</a></h4>
      <section><p>Helper class for implementors of IMemberTypeEncoder</p>
</section>
      <h4><a class="xref" href="C1.Win.List.Util.Xml.Serialization.Pair.html">Pair</a></h4>
      <section><p>General purpose pair class. (Should be moved to gp utils.)</p>
</section>
      <h4><a class="xref" href="C1.Win.List.Util.Xml.Serialization.Serializer.html">Serializer</a></h4>
      <section><p>Serializes and deserializes objects into and from XML.</p>
</section>
      <h4><a class="xref" href="C1.Win.List.Util.Xml.Serialization.TypeSerializationAttribute.html">TypeSerializationAttribute</a></h4>
      <section><p>Forces the serializer to serialize the type name of a property or field</p>
</section>
    <h3 id="interfaces">
Interfaces
</h3>
      <h4><a class="xref" href="C1.Win.List.Util.Xml.Serialization.IMemberTypeEncoder.html">IMemberTypeEncoder</a></h4>
      <section><p>This interface is used to allow objects and collection to serialize
types of their members in a custom way.
If a collection implements this interface, TypeToString is invoked during
serialization of collection items, and for all items for which it returns a
non-null string, that string is used as the element name of the item.
If a class implements this interface, AND a member of that class has
attribute TypeNameSerialization.Custom, AND does not have attribute
XmlAttribute (i.e. is serialized as an element), TypeToString is invoked
on the owner when that member is serialized, and if that returns a non-null
string, that string is used as the value of TypeName attribute.
When deserializing a collection which implements this interface,
StringToType is invoked for each new item in the collection, and if that
returns a non-null type, that type is used to create the item. Otherwise,
TypeNameSerialization attribute is used.
When deserializing a class which implements this interface, StringToType
is invoked on that class for members with TypeNameSerialization.Custom
attribute set.</p>
</section>
      <h4><a class="xref" href="C1.Win.List.Util.Xml.Serialization.IOnLongOpInProgressProvider.html">IOnLongOpInProgressProvider</a></h4>
      <section><p>Interface used to provide feedback and the ability to cancel potentially long operations</p>
</section>
    <h3 id="enums">
Enums
</h3>
      <h4><a class="xref" href="C1.Win.List.Util.Xml.Serialization.TypeSerialization.html">TypeSerialization</a></h4>
      <section><p>Determines how item types are serialized</p>
</section>
    <h3 id="delegates">
Delegates
</h3>
      <h4><a class="xref" href="C1.Win.List.Util.Xml.Serialization.LongOpInProgressHandler.html">LongOpInProgressHandler</a></h4>
      <section></section>


</div>
