Difference between revisions of "C"

From Richard's Wiki
Jump to: navigation, search
(SerializeToXml)
Line 5: Line 5:
 
To use it do something like GetPropertyName(()=>this.Property);
 
To use it do something like GetPropertyName(()=>this.Property);
  
 +
<code>
 +
using System;
 +
using System.Linq.Expressions;
 +
using System.Reflection;
 
  private string GetPropertyName<T>(Expression<Func<T>> property)
 
  private string GetPropertyName<T>(Expression<Func<T>> property)
 
  {
 
  {
Line 15: Line 19:
 
     return propertyName;
 
     return propertyName;
 
  }
 
  }
 
+
</code>
  
  
 
===== SerializeToXml =====
 
===== SerializeToXml =====
  
         #using System.IO;
+
         using System.IO;
         #using System.Xml;
+
         using System.Xml;
 
         /// <summary>
 
         /// <summary>
 
         /// Serializes to XML.
 
         /// Serializes to XML.

Revision as of 23:32, 25 July 2011

Get Property Name via Lambda Expression

To use it do something like GetPropertyName(()=>this.Property);

using System;
using System.Linq.Expressions;
using System.Reflection;
private string GetPropertyName<T>(Expression<Func<T>> property)
{
    var propertyInfo = (property.Body as MemberExpression).Member as PropertyInfo;
    if (propertyInfo == null)
    {
      throw new ArgumentException("The lambda expression 'property' should point to a valid Property");
    }
    var propertyName = propertyInfo.Name;
    return propertyName;
}


SerializeToXml
       using System.IO;
       using System.Xml;
       /// <summary>
       /// Serializes to XML.
       /// </summary>
       /// <param name="firstClassElement">The first class element to serialize.</param>
       /// <returns>The XML string that represents the passed first class element.</returns>
       public virtual string SerializeToXml(FirstClassElementType firstClassElement)
       {
           string xmlData;
           var memoryStream = new MemoryStream();
           XmlTextWriter writer = null;
           try
           {
               writer = new XmlTextWriter(memoryStream, Encoding.Unicode)
                            {
                                Formatting = Formatting.Indented,
                                Indentation = 0
                            };
               var xmlSerializer = new XmlSerializer(typeof (FirstClassElementType));
               xmlSerializer.Serialize(writer, firstClassElement);
               writer.Flush();
           }
           finally
           {
               memoryStream.Seek(0, SeekOrigin.Begin);
               var textReader = new StreamReader(memoryStream);
               xmlData = textReader.ReadToEnd();
               textReader.Close();
               if (null != writer)
                   writer.Close();
           }
           return xmlData;
       }