将类型传递给Expression Func Out

时间:2018-10-10 11:29:34

标签: c# generics reflection func

我需要能够从currentStep变量中获取类型并将其用于newExpression分配。该代码正在执行的操作是更改Expression的输出类型。有没有一种方法可以根据currentStep类型动态设置newExpression func out类型?

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类中使用。

0 个答案:

没有答案