deb*_*ebe 2 c# lambda datacontract
下面用som模拟代码来说明我的例子.问题是lambda表达式.如果我在代码示例中保留它,当我尝试调用服务时它将不会序列化.但是,如果我.ToList()在lambda之后键入它应该序列化.
这是为什么?我不明白为什么下面的代码不起作用...有人关心开导我吗?:)
var list = new EntityPerson
{
Names = modelPerson.Names.Select(
n => new EntityName
{
Text = n.Text
})
}
Run Code Online (Sandbox Code Playgroud)
这是因为延期执行.你不是存储lambda执行的结果,而是存储表达式树或lambda本身,它需要将引用(!)序列化为modelPerson.
http://blogs.msdn.com/b/charlie/archive/2007/12/09/deferred-execution.aspx以及更多显示与此相关的"问题".(谷歌的"延期执行.net"了解更多.)