Monday, 8 September 2014

Get public string property names/values


/// <summary>Gets a list of all public string property names and values.</summary>
/// <returns>A list of all public string property names and values.</returns>
public NameValueCollection Details()
{
  var result = new NameValueCollection();

  foreach (var property in GetType()
    .GetProperties(BindingFlags.Instance | BindingFlags.Public)
    .Where(x => x.PropertyType == typeof(string)
      && x.GetGetMethod(false!= null))
  {
    result.Add(property.Name, (string)property.GetValue(this));
  }

  return result;
}