我有一个IQuerable<object> source对象,必须得到类似的东西(但使用反射).
source.Select(t => new SelectListItem { Name = t.Name, Value = t.Id })
Run Code Online (Sandbox Code Playgroud)
我该怎么做,或者在哪里可以找到构建那种表达式树的引用.
谢谢
我从.net迁移到rails并且我是初学者.我玩过但不知道如何为admin命名空间创建一个基本控制器来共享一些功能.我的意思是,在哪里放基类,因为我每次尝试都会出错.
谢谢
我正在尝试创建一个lambda表达式(使用Reflection),看起来像这样
IServiceProvider provider => provider.GetService<TDbContext>()
Run Code Online (Sandbox Code Playgroud)
或者,更具体地说,作为GetService一种扩展方法:
provider => ServiceProviderServiceExtensions.GetService<TDbContext>(provider)
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
var methodInfo = typeof(ServiceProviderServiceExtensions).
GetTypeInfo().
GetMethod("GetService").
MakeGenericMethod(typeof(TDbContext));
var lambdaExpression = Expression.Lambda(
Expression.Call(methodInfo, Expression.Parameter(typeof(IServiceProvider), "provider")),
Expression.Parameter(typeof(IServiceProvider), "provider")
);
var compiledLambdaExpression = lambdaExpression.Compile();
Run Code Online (Sandbox Code Playgroud)
我收到了这个错误
System.Linq.Expressions.dll中出现"System.InvalidOperationException"类型的异常,但未在用户代码中处理
附加信息:从范围''引用的'System.IServiceProvider'类型的变量'provider',但它没有定义
c# ×2
reflection ×2
.net ×1
.net-core ×1
admin ×1
base ×1
controller ×1
expression ×1
lambda ×1
linq ×1