我有一个奇怪的问题。我有一种方法,期望IEnumerable
稍后dynamic
我必须迭代做一些事情。
调用该方法的代码是这样的:
GuardarControlCristalesPedidos(
items.Select(o => new {o.Id, o.CantidadRecibida, o.Cerrado}));
该方法编码为
public static void GuardarControlCristalesPedidos(IEnumerable itemsAGuardar)
{
var session = FactoryProvider.GetCurrentSession();
using (var t = session.BeginTransaction())
{
foreach (dynamic item in itemsAGuardar)
{
var cItem = session.Load<PedidoItem>(item.Id);
cItem.CantidadRecibida = item.CantidadRecibida;
cItem.Cerrado = item.Cerrado;
session.Save(cItem);
}
t.Commit();
}
}
现在,我遇到的问题是程序无法抛出'item.Id' produjo una excepción de tipo 'Microsoft.CSharp.RuntimeBinder.RuntimeBinderException'
但奇怪的是,当我使用dynamic
调试器访问变量时,它似乎很好(IDE 显示成员很好,但是当我尝试访问时失败item.Id
这里发生了什么?