Jim*_*Jim 3 ienumerable serialization webget
可能重复:
当使用WCF,LINQ,JSON时,无法序列化'System.Linq.Enumerable ...'类型的参数
嗨,
如果我的方法signiature看起来像这样,它工作正常.
[WebGet]
MyClass[] WebMethod()
Run Code Online (Sandbox Code Playgroud)
如果签名看起来像这样
[WebGet]
IEnumerable<T> WebMethod()
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:无法序列化'XYZT + <WebMethod> d__2c'类型的参数(对于操作'WebMethod',合同'IService'),因为它不是确切的类型'System.Collections.Generic.IEnumerable`1 [XYZT] '在方法签名中并且不在已知类型集合中.要序列化参数,请使用ServiceKnownTypeAttribute将类型添加到操作的已知类型集合中.
我试过添加.ServiceKnownType(typeof运算(IEnumerable的))
同样的错误.
这是2010 beta 2中的错误,或者这可能是正确的吗?
谢谢
由C#编译器生成的迭代器类型不可序列化,永远不会.
如果您阅读此页面,您将看到序列化迭代器没有意义.
你需要返回一个数组.
编辑:最简单的方法是将迭代器移动到单独的方法,然后更改WebMethod为
[WebGet]
MyClass[] WebMethod() { return OtherMethod().ToArray(); }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6136 次 |
| 最近记录: |