我有通用类" MSAccessQueryBuilder"使用以下方法
public I_QueryBuilder<T> Select(Expression<Func<T, object>> fieldNames)
{
NewExpression nEx = (NewExpression)fieldNames.Body;
MsAccessQueryBuilder<"Anonymous Type Of Expression"> x = new MsAccessQueryBuilder<"Anonymous Type Of Expression">();
}
在我需要创建&#34; MSAccessQueryBuilder&#34;的实例的方法中。使用在lambda表达式中匿名创建的泛型类型。
该方法将在下面调用
x.Select(s=> new {p1 = s.user_id,p2 = s.user_name})
我自己试了8个小时但没有运气。
是否可以从NewExpression或LambdaExpression获取匿名类型并创建该匿名类型的泛型类的实例
请帮忙
谢谢
答案 0 :(得分:0)
你可以这样做。
{{1}}
答案 1 :(得分:0)
必须将方法签名更改为Func委托返回类型为泛型而不是对象解决了问题
public I_QueryBuilder<TResult> Select(Expression<Func<T, TResult>> fieldNames)
{
return new MsAccessQueryBuilder<TResult>();
}