Мне нужно иметь возможность получить тип из переменной currentStep
и использовать этот тип для назначения newExpression
.Этот код выполняет изменение типа Expression
out.Есть ли способ, которым я могу динамически установить тип newExpression
func out на основе типа currentStep?
PropertyInfo currentStep = wizardTransaction.GetCurrentStepPropertyInfo();
string currentStepName = wizardTransaction.GetCurrentStepPropertyInfo().PropertyType.Name;
var body = Expression.Property(expression.Body, currentStepName);
var newExpression = Expression.Lambda<Func<TModel, **currentStep.GetType()**>>(body, expression.Parameters[0]);
var model = ModelMetadata.FromLambdaExpression(newExpression, helper.ViewData).Model;
Метод, в котором находится приведенный выше код, является классом static
, поэтому ответом будетРешение, для которого это помечено как дубликат, не применяется, поскольку ключевое слово this
, используемое в принятом ответе, не может использоваться в классе static
.