Translate

Thursday, December 12, 2013

Serializer helper


/// Helper class for serializing / deserializing
/// var helper=new XmlSerializerHelper();
/// object
public class XmlSerializerHelper
{
     public Type _type;

     public XmlSerializerHelper()
     {
         _type = typeof(T);
     }

     /// Returns serialized xml string
     public string GetXml(object objectToSerialize)
     {
         if (objectToSerialize == null)
         {
             return string.Empty;
         }
         else
         {
             var stringWriter = new StringWriter();
             XmlWriterSettings settings = new XmlWriterSettings();
             settings.OmitXmlDeclaration = true;
             settings.Indent = false;
             using (XmlWriter writer = XmlWriter.Create(stringWriter, settings))
             {
                 XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
                 ns.Add(string.Empty, string.Empty);
                 XmlSerializer xmlSerializer = new XmlSerializer(objectToSerialize.GetType());
                 xmlSerializer.Serialize(writer, objectToSerialize, ns);
                 return stringWriter.ToString();
             }
         }
     }

     /// Returns deserialized object instance from xml
     /// xml string from data record
     /// object T
     public T GetObject(string xmlString)
     {
         T result;
         var reader = new StringReader(xmlString);
         XmlSerializer serializer = new XmlSerializer(_type);
         result = (T)serializer.Deserialize(reader);
         return result;
     }
 }

asp net Find all controls

private void GetControlList(ControlCollection controlCollection, List resultCollection) where T : Control
{
       foreach (Control control in controlCollection)
       {
          if (control is T) // This is cleaner
               resultCollection.Add((T)control);
           if (control.HasControls())
               GetControlList(control.Controls, resultCollection);
       }
}

Page: PreInit
Control: Init
Page: Init
Page: InitComplete
Page: PreLoad
Page: Load
Control: Load
Page: LoadComplete
Page: PreRender
Control: PreRender
Page: PreRenderComplete
Page: SaveStateComplete
Page: RenderControl
Page: Render
Control: RenderControl
Control: Unload
Control: Dispose
Page: Unload
Page: Dispose