Я испытываю трудности с отображением выражений для DataServiceQuery
.
. Мой ввод следующий: Expression<Func<TEntity, bool>> predicate
и string entitySet
Теперь мне нужно преобразовать это вExpression<Func<TOutput, bool>> output
В настоящее время я использую AutoMapper и создал карту между TEntity
и TOutput
Затем я пытаюсь отобразить выражение следующим образом:
var type = Type.GetType($"ServiceContext.{entitySet}, ServiceContext");
var predicateTargetType = typeof(Expression<>).MakeGenericType(typeof(Func<,>).MakeGenericType(type, typeof(bool)));
var mappedPredicate = _mapper.Map(predicate, predicate.GetType(), predicateTargetType);
Приведенный выше кодможет показаться, что он работает, во время выполнения он выполняется, однако проблема заключается в том, что всякий раз, когда я использую переменную mappedPredicate
, он генерирует следующее исключение:
System.InvalidOperationException: код, как предполагается, недоступен
Слой, который вызывает этот код, ничего не знает о TOutput
, поэтому у меня есть только имя TOutput
в строковом формате и выражение TEntity
.
Любая помощь будетбольшое спасибо!