У меня есть следующий класс со свойством выражения:
public class ClassWithExpression
{
public Expression<Func<SomeAbstractBaseClass, object>> SomeExpression { get; set; }
}
Мне нужно выражение, чтобы иметь возможность обрабатывать все подклассы SomeAbstractBaseClass
и все типы селекторов свойств (int, string,десятичный и т. д.).В конце концов, выражение будет передано в метод расширения linq, например OrderBy
.В существующем состоянии он блокирует свойства, отображаемые только в базовом классе.Селектор реквизита object
проблематичен при попытке передать что-либо, кроме реквизита строки.
Я бы согласился с чем-то вроде ...
public class ClassWithExpression
{
public Expression SomeExpression { get; set; }
}
... но ничто не заставляет нас думать, что выражение основано на подклассе SomeAbstractBaseClass
.Кроме того, я не уверен, как бы передать такое выражение в метод расширения OrderBy.
Буду признателен за любую помощь, даже если это полное изменение направления.:)
РЕДАКТИРОВАТЬ:
Извините, я не упомянул об этом ранее, но я не могу использовать дженерики для решения этой проблемы.К сожалению, я не знаю типы во время компиляции.