×

Welcome to TagMyCode

Please login or create account to add a snippet.
1
0
 
0
Language: C#
Posted by: Arturo Bardelli
Added: Nov 24, 2015 10:02 AM
Modified: Nov 24, 2015 10:02 AM
Views: 10
Tags: no tags
returns a generic property as a string of a generic type through reflection
  1. using System.Reflection;
  2.  
  3. ...
  4.  
  5.         public static string GetPropertyValue<T>(this T @this,
  6.                 string propertyToRead) where T : class
  7.         {
  8.             string propertyValue = string.Empty;
  9.             var sourceType = @this.GetType();
  10.             var binding = BindingFlags.Public | BindingFlags.Instance;
  11.  
  12.             if (propertyToRead.Contains("."))
  13.             {
  14.                 var property = sourceType.GetProperty(
  15.                                 propertyToRead.Split('.').First(),
  16.                                 binding | BindingFlags.GetProperty);
  17.                 var value = property.GetValue(@this, null);
  18.                 propertyValue = value.GetPropertyValue(String.Join(".", propertyToRead.Split('.').Skip(1).ToArray()));
  19.             }
  20.             else
  21.             {
  22.                 propertyValue = Convert.ToString(@this.GetType().GetProperty(propertyToRead).GetValue(@this, null));
  23.             }
  24.             return propertyValue;
  25.         }