Bir dizeden "Özellik Seçici" oluşturmaya çalışıyorum. Özellik seçici oluşturma Dizgeden ifade etme
bana Gerçek hayat örnekle kendimi biraz açıklayalım:Biz İsim (string) özelliğe sahip bir kişi sınıf var.
el bu propertySelector yazı gibi bir "özellik seçici" oluşturabilir:
Expression<Func<Person, string>> propertySelector = x => x.Name;
Ama benim yöntemi ile aynı özellik seçici almak istiyorum.
public static Expression<Func<TIn, TOut>> CreatePropertySelectorExpression<TIn, TOut>(string path)
{
Expression exp = Expression.Parameter(typeof(TIn), "x");
foreach (var property in path.Split('.'))
{
exp = Expression.PropertyOrField(exp, property);
}
return exp;
}
Ama ... var ve geçersiz dökme hata ettik:
var propertySelector = CreatePropertySelectorExpression<Person, string>("Name");
Ne var bugüne kadar bu!
dolaylı 'System.Linq.Expressions.Expression>' tip 'System.Linq.Expressions.Expression' dönüştürülemez. Bir açık dönüşüm
Ben İfadeler çok yeniyim ve devam etmek nasıl bilmiyorum :(
Eğer kullanım gerçek örneğini ekleyebilir lütfen? – InferOn
örnek Expression.Parameter ParameterExpression dönecektir için bazı hata, kodunuzda var Expression.PropertyOrField içtenlikle sana – InferOn
, sadece yaptığım düzenlemeyi kontrol edin başarmak ne anlamıyorum, MemberExpression dönecektir. Çok daha iyi bir örnek verdim. Belki de kod yanlıştır. Ben Expressions hakkında bir acemi değilim: (Şimdiden teşekkürler! – SuperJMN