Size: a a a

2020 March 30

t

taRantitka in pro.net
как с помощью expressions написать лямбду куд я смогу подсовывать имя поля которое нужно вытянуть??
источник

IC

Ilya Chernoudov in pro.net
taRantitka
как с помощью expressions написать лямбду куд я смогу подсовывать имя поля которое нужно вытянуть??
Expression.propertyOrField
источник

t

taRantitka in pro.net
Ilya Chernoudov
Expression.propertyOrField
а первый параметр для строки что будет?
источник

IC

Ilya Chernoudov in pro.net
taRantitka
а первый параметр для строки что будет?
ну у тебя 2 параметра- имя свойства + объект, у котрого ты хочешь взять свойство
источник

IC

Ilya Chernoudov in pro.net
но ты можешь просто загаглить это будет быстрее
источник

t

taRantitka in pro.net
Ilya Chernoudov
ну у тебя 2 параметра- имя свойства + объект, у котрого ты хочешь взять свойство
чёт особо не гуглится
источник

IC

Ilya Chernoudov in pro.net
taRantitka
чёт особо не гуглится
 public static Func<T, object> GetValueGetter<T>(this PropertyInfo propertyInfo)
   {
       if (typeof(T) != propertyInfo.DeclaringType)
       {
           throw new ArgumentException();
       }

       var instance = Expression.Parameter(propertyInfo.DeclaringType, "i");
       var property = Expression.Property(instance, propertyInfo);
       var convert = Expression.TypeAs(property, typeof(object));
       return (Func<T, object>)Expression.Lambda(convert, instance).Compile();
   }
источник

t

taRantitka in pro.net
Ilya Chernoudov
 public static Func<T, object> GetValueGetter<T>(this PropertyInfo propertyInfo)
   {
       if (typeof(T) != propertyInfo.DeclaringType)
       {
           throw new ArgumentException();
       }

       var instance = Expression.Parameter(propertyInfo.DeclaringType, "i");
       var property = Expression.Property(instance, propertyInfo);
       var convert = Expression.TypeAs(property, typeof(object));
       return (Func<T, object>)Expression.Lambda(convert, instance).Compile();
   }
но это не совсем то что мне нужно
источник

IC

Ilya Chernoudov in pro.net
taRantitka
но это не совсем то что мне нужно
это хороший старт
источник

IC

Ilya Chernoudov in pro.net
чтобы написать всё что тебе нужно
источник

MS

Maxim Savencov in pro.net
привет
источник

t

taRantitka in pro.net
Ilya Chernoudov
это хороший старт
я же думал можно просто стянуть Expression.propertyOrField нужный мне пораметр по имени, если писать как в примере мне отпадает такой вариант
источник

MS

Maxim Savencov in pro.net
помогите плз победить
источник

IC

Ilya Chernoudov in pro.net
taRantitka
я же думал можно просто стянуть Expression.propertyOrField нужный мне пораметр по имени, если писать как в примере мне отпадает такой вариант
я хз, что ты хочешь получить, но удачи тебе в этом)
источник

IC

Ilya Chernoudov in pro.net
Maxim Savencov
помогите плз победить
выбери то, что тебе нужно)
источник

DP

Denis Petukhov in pro.net
Maxim Savencov
помогите плз победить
Указать namespace не помогает?
источник

MS

Maxim Savencov in pro.net
они в одном namespace
источник

IC

Ilya Chernoudov in pro.net
Maxim Savencov
они в одном namespace
сделай алиас
источник

MS

Maxim Savencov in pro.net
в обоих сборках
источник

IC

Ilya Chernoudov in pro.net
для сборки
источник