Advertisement
Guest User

Untitled

a guest
Aug 18th, 2019
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 0.88 KB | None | 0 0
  1.         private static TModel Bind<TModel, TProperty>(this TModel model, Expression<Func<TModel, TProperty>> expression,
  2.             object value)
  3.         {
  4.             var memberExpression = expression.Body as MemberExpression;
  5.             if (memberExpression == null)
  6.             {
  7.                 memberExpression = ((UnaryExpression) expression.Body).Operand as MemberExpression;
  8.             }
  9.  
  10.             var propertyName = memberExpression.Member.Name.ToLowerInvariant();
  11.             var modelType = model.GetType();
  12.             var field = modelType.GetFields(BindingFlags.Instance | BindingFlags.NonPublic)
  13.                 .SingleOrDefault(x => x.Name.ToLowerInvariant().StartsWith($"<{propertyName}>"));
  14.             if (field == null)
  15.             {
  16.                 return model;
  17.             }
  18.  
  19.             field.SetValue(model, value);
  20.  
  21.             return model;
  22.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement