Posted By


JanVanRyswyck on 07/27/09

Tagged


Statistics


Viewed 331 times
Favorited by 1 user(s)

ReflectionHelper


/ Published in: C#
Save to your folder(s)



Copy this code and paste it in your HTML
  1. public static class ReflectionHelper
  2. {
  3. private sealed class AssemblyMarker {}
  4.  
  5. public static PropertyInfo GetProperty<T>(Expression<Func<T, Object>> expression)
  6. {
  7. Check.Argument(expression, "expression").IsNotNull();
  8.  
  9. MemberExpression memberExpression;
  10. if(ExpressionType.Convert == expression.Body.NodeType)
  11. {
  12. var body = (UnaryExpression)expression.Body;
  13. memberExpression = body.Operand as MemberExpression;
  14. }
  15. else
  16. {
  17. memberExpression = expression.Body as MemberExpression;
  18. }
  19.  
  20. if(null == memberExpression)
  21. {
  22. var message = ResourceLoader<AssemblyMarker>.GetString("InvalidMemberExpression");
  23. throw new InvalidOperationException(message);
  24. }
  25.  
  26. return memberExpression.Member as PropertyInfo;
  27. }
  28. }

Report this snippet


Comments

RSS Icon Subscribe to comments

You need to login to post a comment.