2014-07-10 25 views
0

類型'System.Linq.Enumerable + WhereSelectListIterator`2 [[Services.Client.DomainValueMEMBERFIELDS,Services。客戶端,Version = 12.2.4.0,Culture = neutral,PublicKeyToken = null],[System.String,mscorlib,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089]]'in'Assembly'System.Core,Version = 4.0 .0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'未標記爲可序列化。嘗試使用AppFabric存儲會話,但出現錯誤:類型'System.Linq.Enumerable + WhereSelectListIterator未被標記爲可序列化

有沒有人有想法序列化上述事情?

回答

0

這聽起來像任你試圖在會話中存儲一個匿名類型:

var somethingInTheSession = aCollection 
     .Where(x => ??) 
     .Select(x => x.Id, x.Name); 

這並不是因爲序列anonymous types can't be serialised as XML

或者,如果要創建在一個已知類型選擇方法,你就必須調用ToList它可以被序列化之前:

var somethingInTheSession = aCollection 
    .Where(x => ??) 
    .Select(x => new Person { Id = x.Id, Name = x.Name) 
    .ToList(); 

否則串行有連載的IEnumerable尚未列舉,這是它失敗的原因。

相關問題