Как преобразовать объект в Func, где TIn, TOut — известные типы во время выполнения?C#

Место общения программистов C#
Ответить
Anonymous
 Как преобразовать объект в Func, где TIn, TOut — известные типы во время выполнения?

Сообщение Anonymous »


публичный статический класс PropertyAccessor { общедоступное статическое выражение Create(string propertyName) { свойство var = typeof(T).GetProperty(propertyName); если (свойство равно нулю) { вернуть ноль; } результат вар = typeof(PropertyAccessor).GetMethod(nameof(CreateExpression))! .MakeGenericMethod(typeof(T, property.PropertyType) .Invoke(null, новый объект[] {propertyName}); } частное статическое выражение CreateExpression(string propertyName) { параметр var = Expression.Parameter(typeof(TIn)); var body = Expression.Property(параметр, имя_свойства); return Expression.Lambda(тело, параметр); } } Я пытался выполнить приведение с помощью Convert и других средств, но, не зная TIn и TOut во время компиляции, приведение невозможно
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»