Difference between revisions of "C"
From Richard's Wiki
(→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.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; }