相关疑难解决方法(0)

如何动态评估C#代码?

我可以eval("something()");在JavaScript中动态执行代码.有没有办法让我在C#中做同样的事情?

我想要做的一个例子是:我有一个整数变量(比如说i),我有多个属性名称:"Property1","Property2","Property3"等.现在,我想执行一些操作在"财产i "属性取决于的价值i.

使用Javascript这非常简单.有没有办法用C#做到这一点?

c# reflection properties c#-2.0

91
推荐指数
7
解决办法
6万
查看次数

如何在通用扩展方法中使用字符串列名在IQueryable上应用OrderBy?

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只能在运行时确定.

有没有解决的办法?

.net c# linq entity-framework expression-trees

83
推荐指数
5
解决办法
8万
查看次数