0
好的,所以这是我见过的.net编程中最奇怪的问题。似乎对象字段按照字段初始化顺序在.net Web服务中序列化。LINQ to SQL序列化问题与SOAP对象
这一切都始于Flex,不接受来自.net Web服务的SOAP响应。我发现这是由于序列化字段的顺序是声明可序列化类中字段的顺序。
它与泛型列表和LINQ to SQL有关,但我找不到。这一个真的很难重现。
例获得的想法:
[Serializable]
public class SomeSample
{
public int A;
public int B;
public int C;
}
我使用LINQ和返回SomeSample对象列表查询ASMX Web服务中的一些数据表:
var r = (from ...... select new SomeSample { A = 1, C = 3 }).ToList();
现在的名单是一次迭代和B字段被应用一些值(例如2)。
但是返回的SOAP信封包含以下摘录:
<A>1</A><C>3</C><B>2</B>
请注意序列化的顺序。如果我最初初始化所有字段:
var r = (from ...... select new SomeSample { A = 1, B = 2, C = 3 }).ToList();
对象按正确顺序序列化。
我必须补充说,在这两种情况下,调试器都显示完全相同的“r”变量内容。
我是失去理智还是这种正常行为?
在此先感谢。