我可以eval("something()");在JavaScript中动态执行代码.有没有办法让我在C#中做同样的事情?
我想要做的一个例子是:我有一个整数变量(比如说i),我有多个属性名称:"Property1","Property2","Property3"等.现在,我想执行一些操作在"财产i "属性取决于的价值i.
使用Javascript这非常简单.有没有办法用C#做到这一点?
public static IQueryable<TResult> ApplySortFilter<T, TResult>(this IQueryable<T> query, string columnName)
where T : EntityObject
{
var param = Expression.Parameter(typeof(T), "o");
var body = Expression.PropertyOrField(param,columnName);
var sortExpression = Expression.Lambda(body, param);
return query.OrderBy(sortExpression);
}
Run Code Online (Sandbox Code Playgroud)
因为OrderBy的类型不是从sortExpression中推断出来的,所以我需要在运行时指定类似的东西:
var sortExpression = Expression.Lambda<T, TSortColumn>(body, param);
Run Code Online (Sandbox Code Playgroud)
要么
return query.OrderBy<T, TSortColumn>(sortExpression);
Run Code Online (Sandbox Code Playgroud)
我不认为这是可能的,因为TSortColumn只能在运行时确定.
有没有解决的办法?