SharpSerializer
You may use sharpSerializer free of charge for any purpose.

Though sharpSerializer is no more Beta, is reliable and stable.., it's still young, it's a baby.

Don't leave the baby alone!

To grow a healthy baby, don't ask - how to donate ;-)

Instead just place a link to sharpSerializer or recommend it to your friends.

Let's grow the baby together!

Pawel Idzikowski
Author of sharpSerializer
New - sharpSerializer on CodePlex
sharpSerializer is now on GitHub!

Example of XML serialization with sharpSerializer

Back

Below you see XML as a result of serialization of a single RootContainer - an example class from the HelloWorldDemo (Please download the source code for more details)


<Complex name="Root" type="HelloWorldApp.BusinessObjects.RootContainer, HelloWorldApp">
  <Properties>
    <Simple name="SimpleSByte" value="-33" />
    <Simple name="SimpleInt" value="42" />
    <Simple name="SimpleSingle" value="-352" />
    <Simple name="SimpleDouble" value="42.42" />
    <Simple name="SimpleDateTime" value="05/05/2004 00:00:00" />
    <Simple name="SimpleTimeSpan" value="05:04:03" />
    <Simple name="SimpleEnum" value="Three" />
    <Simple name="FlagsEnum" value="Alfa, Beta" />
    <Simple name="SimpleDecimal" value="17.123" />
    <Simple name="SimpleString" value="sth" />
    <Simple name="EmptyString" value="" />
    <Complex name="AdvancedStruct">
      <Properties>
        <Simple name="SimpleInt" value="0" />
        <Simple name="SimpleText" value="nix" />
        <Simple name="DateTime" value="04/10/2010 00:00:00" />
      </Properties>
    </Complex>
    <SingleArray name="SingleArray" elementType="System.String, mscorlib">
      <Items>
        <Simple value="ala" />
        <Simple value="ma" />
        <Null />
        <Simple value="kota" />
      </Items>
    </SingleArray>
    <MultiArray name="DoubleArray" elementType="System.String, mscorlib">
      <Dimensions>
        <Dimension length="3" />
        <Dimension length="2" />
      </Dimensions>
      <Items>
        <Item indexes="0,0">
          <Simple value="k1" />
        </Item>
        <Item indexes="0,1">
          <Simple value="k2" />
        </Item>
        <Item indexes="1,0">
          <Simple value="b1" />
        </Item>
        <Item indexes="1,1">
          <Simple value="b2" />
        </Item>
        <Item indexes="2,0">
          <Simple value="z1" />
        </Item>
        <Item indexes="2,1">
          <Simple value="z2" />
        </Item>
      </Items>
    </MultiArray>
    <SingleArray name="PolymorphicSingleArray" elementType="HelloWorldApp.BusinessObjects.IComplexObject, HelloWorldApp">
      <Items>
        <Complex type="HelloWorldApp.BusinessObjects.ComplexObject, HelloWorldApp">
          <Properties>
            <Simple name="SimpleInt" value="999" />
          </Properties>
        </Complex>
      </Items>
    </SingleArray>
    <Collection name="GenericList" type="System.Collections.Generic.List`1[[System.String, mscorlib]], mscorlib" elementType="System.String, mscorlib">
      <Properties>
        <Simple name="Capacity" value="4" />
      </Properties>
      <Items>
        <Simple value="item1" />
        <Simple value="item2" />
        <Simple value="item3" />
      </Items>
    </Collection>
    <Dictionary name="GenericDictionary" type="System.Collections.Generic.Dictionary`2[[System.Int32, mscorlib],[System.String, mscorlib]], mscorlib" keyType="System.Int32, mscorlib" valueType="System.String, mscorlib">
      <Items>
        <Item>
          <Simple value="5" />
          <Null />
        </Item>
        <Item>
          <Simple value="10" />
          <Simple value="ten" />
        </Item>
        <Item>
          <Simple value="20" />
          <Simple value="twenty" />
        </Item>
      </Items>
    </Dictionary>
    <Dictionary name="GenericDictionaryOfPolymorphicValues" type="System.Collections.Generic.Dictionary`2[[System.Int32, mscorlib],[HelloWorldApp.BusinessObjects.IComplexObject, HelloWorldApp]], mscorlib" keyType="System.Int32, mscorlib" valueType="HelloWorldApp.BusinessObjects.IComplexObject, HelloWorldApp">
      <Items>
        <Item>
          <Simple value="2012" />
          <Complex type="HelloWorldApp.BusinessObjects.ComplexObject, HelloWorldApp">
            <Properties>
              <Simple name="SimpleInt" value="2012000" />
            </Properties>
          </Complex>
        </Item>
      </Items>
    </Dictionary>
    <Complex name="ComplexObject" type="HelloWorldApp.BusinessObjects.ComplexObject, HelloWorldApp">
      <Properties>
        <Simple name="SimpleInt" value="33" />
      </Properties>
    </Complex>
    <Collection name="ComplexObjectCollection">
      <Items>
        <Complex type="HelloWorldApp.BusinessObjects.ComplexObject, HelloWorldApp">
          <Properties>
            <Simple name="SimpleInt" value="11" />
          </Properties>
        </Complex>
        <Complex type="HelloWorldApp.BusinessObjects.ComplexObject, HelloWorldApp">
          <Properties>
            <Simple name="SimpleInt" value="12" />
          </Properties>
        </Complex>
      </Items>
    </Collection>
    <Dictionary name="ComplexObjectDictionary">
      <Items>
        <Item>
          <Simple type="System.Int32, mscorlib" value="100" />
          <Complex type="HelloWorldApp.BusinessObjects.ComplexObject, HelloWorldApp">
            <Properties>
              <Simple name="SimpleInt" value="101" />
            </Properties>
          </Complex>
        </Item>
        <Item>
          <Simple type="System.Int32, mscorlib" value="200" />
          <Complex type="HelloWorldApp.BusinessObjects.ComplexObject, HelloWorldApp">
            <Properties>
              <Simple name="SimpleInt" value="202" />
            </Properties>
          </Complex>
        </Item>
        <Item>
          <Simple type="System.Int32, mscorlib" value="300" />
          <Null />
        </Item>
      </Items>
    </Dictionary>
    <Collection name="GenericListOfComplexObjects" type="System.Collections.Generic.List`1[[HelloWorldApp.BusinessObjects.IComplexObject, HelloWorldApp]], mscorlib" elementType="HelloWorldApp.BusinessObjects.IComplexObject, HelloWorldApp">
      <Properties>
        <Simple name="Capacity" value="4" />
      </Properties>
      <Items>
        <Complex type="HelloWorldApp.BusinessObjects.ComplexObject, HelloWorldApp">
          <Properties>
            <Simple name="SimpleInt" value="303" />
          </Properties>
        </Complex>
      </Items>
    </Collection>
    <Complex name="GenericObjectOfComplexObject">
      <Properties>
        <Complex name="Data" type="HelloWorldApp.BusinessObjects.ComplexObject, HelloWorldApp">
          <Properties>
            <Simple name="SimpleInt" value="12345" />
          </Properties>
        </Complex>
      </Properties>
    </Complex>
    <MultiArray name="MultiArrayOfGenericObjectWithPolymorphicArgument" elementType="HelloWorldApp.BusinessObjects.GenericObject`1[[HelloWorldApp.BusinessObjects.IComplexObject, HelloWorldApp]], HelloWorldApp">
      <Dimensions>
        <Dimension length="1" />
        <Dimension length="1" />
      </Dimensions>
      <Items>
        <Item indexes="0,0">
          <Complex>
            <Properties>
              <Complex name="Data" type="HelloWorldApp.BusinessObjects.ComplexObject, HelloWorldApp">
                <Properties>
                  <Simple name="SimpleInt" value="1357" />
                </Properties>
              </Complex>
            </Properties>
          </Complex>
        </Item>
      </Items>
    </MultiArray>
    <SingleArray name="SingleArrayOfObjects" elementType="System.Object, mscorlib">
      <Items>
        <Simple type="System.Int32, mscorlib" value="42" />
        <Simple type="System.String, mscorlib" value="nothing to say" />
        <Simple type="System.Boolean, mscorlib" value="False" />
        <Simple type="HelloWorldApp.BusinessObjects.SimpleEnum, HelloWorldApp" value="Three" />
        <Null />
        <SingleArray type="System.Object[], mscorlib" elementType="System.Object, mscorlib">
          <Items>
            <Simple type="System.Int32, mscorlib" value="42" />
            <Simple type="System.String, mscorlib" value="nothing to say" />
            <Simple type="System.Boolean, mscorlib" value="False" />
            <Simple type="HelloWorldApp.BusinessObjects.SimpleEnum, HelloWorldApp" value="Three" />
            <Null />
          </Items>
        </SingleArray>
      </Items>
    </SingleArray>
  </Properties>
</Complex>

Back