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」變量內容。
我是失去理智還是這種正常行爲?
在此先感謝。