2014-07-10 4 views
0

'System.Linq.Enumerable + WhereSelectListIterator`2 [[Services.Client.DomainValueMEMBERFIELDS, Services. 클라이언트, 버전 = 12.2.4.0, 문화 = 중립, PublicKeyToken = null], [System.String, mscorlib, 버전 = 4.0.0.0, Culture = 중립, PublicKeyToken = b77a5c561934e089] '어셈블리'System.Core, 버전 = 4.0 .0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089 '이 (가) 직렬화 가능으로 표시되어 있지 않습니다.AppFabric을 사용하여 세션을 저장하려고했지만 오류가 발생했습니다. 'System.Linq.Enumerable + WhereSelectListIterator가 serializable로 표시되어 있지 않습니다.

누구나 위의 것을 serialize 할 생각이 있습니까?

답변

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(); 

그렇지 않으면 시리얼 라이저는,383을에는 직렬화한다아직 열거되지 않았기 때문에 실패합니다.