【发布时间】:2018-02-01 10:28:41
【问题描述】:
我正在尝试将匿名类型转换为列表,但出现如下调用错误。
未处理的类型异常 mscorlib.dll 中发生“System.Reflection.TargetInvocationException”
var all = from a in Fcticuclist
join b in crlist on a.Ref_CID equals b.C_ID
select new { b.MU_Identifier, a.Status,a.ID };
foreach (var item in all)
{
castapprove.Add(new muapprovelist { Id = item.ID, MU_Identifier = item.MU_Identifier, Status = item.Status });
}
所以这里的“all”是匿名类型,castapprove 是一个列表,muapprovelist 是一个类,它们在同一个视图模型中声明。有什么我做错的地方吗?
【问题讨论】:
-
castapprove如何声明?什么样的清单?你也许在使用dynamic?我的猜测是你有dynamic castapprove = ...在这种情况下......是的,我不希望它工作。 -
TargetInvocationException通常有一个InnerException来解释真正出了什么问题(以及哪里)。请也发布该信息。muapprovelist是该列表中元素的正确类型吗(因为它听起来像一个列表本身)? -
不应该
new { b.MU_Identifier, a.Status,a.ID }是new{MU_Identifier = b.MU_Identifier, Status = aStatus , ID = a.Status,a.ID }? -
@ZoharPeled 没问题,您不需要指定名称,编译器采用您提供的属性的名称(在这种情况下为
MU_Identifier、Status和ID)。 -
@RenéVogt 谢谢,我不确定。