Próbuję wygenerować "Selektor właściwości" z ciągu.Tworzenie selektora właściwości Wyrażenie z ciągu znaków
Pozwól mi wyjaśnić sobie trochę z prawdziwym przykładem życia:
Mamy klasy osoba z nazwą (string) nieruchomości.
mogę ręcznie utworzyć „selektora właściwość” jak to pisze propertySelector:
Expression<Func<Person, string>> propertySelector = x => x.Name;
Ale chciałbym, aby uzyskać ten sam wybierak działce z moim sposobem.
var propertySelector = CreatePropertySelectorExpression<Person, string>("Name");
Co mam tak daleko jest taka:
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;
}
Ale ... mam i błędów obsada nieważny!
nie można niejawnie przekonwertować typu '' do System.Linq.Expressions.Expression 'System.Linq.Expressions.Expression>'. jednoznaczne przekształcenie istnieje (czy brakuje obsady?)
Jestem bardzo nowe do wyrażenia i nie wiem jak dalej :(
proszę można dodać prawdziwy przykład zastosowania? – InferOn
Występuje błąd w kodzie, na przykład Expression.Parameter zwróci ParameterExpression, Expression.PropertyOrField zwróci MemberExpression, szczerze nie rozumiem, co byś uzyskał – InferOn
Proszę, sprawdź edytowaną właśnie edycję. Podaję o wiele lepszy przykład. Może kod jest błędny. Jestem początkującym odnośnie Wyrażeń :(Z góry dzięki! – SuperJMN