2011-01-28 1 views
3

"InProc"세션 데이터를 "StateServer"로 전환하려고합니다.ASP.NET 세션 데이터를 올바르게 직렬화 할 수 있는지 어떻게 확인할 수 있습니까?

이렇게하려면 일련의 클래스를 [Serializable]로 표시하고 이전에 직렬화 할 수없는 일부 클래스를 다시 작성하고 [NonSerialized]로 직렬화하면 안되는 값을 표시했습니다.

이제 내 문제는 컴파일 타임 오류, 예외 또는 프레임 워크의 문제에 대한 다른 표시 대신에 저장된 값 중 일부가 Null 값으로 변경되는 세션을 다시 얻습니다. 세션 자체 또는 세션에 포함 된 객체 내부

왜 오류가 나타나지 않습니까?

null 값의 원인은 무엇입니까?

세션 직렬화가 올바르다는 것을 어떻게 발견 할 수 있습니까? 당신이 당신의 직렬화가 제대로 작동 확인을 위해 몇 가지 단위 테스트를 필요로 같은

감사

답변

3

는 소리.

[Serializable] 
public class SomeClass { 
    public string SomeValue1; 
    public string SomeValue2; 
} 

class Program { 
    static void Main(string[] args) { 
     var value1 = new SomeClass() { SomeValue1 = "Hello", SomeValue2 = "World" }; 
     var ms = new MemoryStream(); 
     var formatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter(); 
     formatter.Serialize(ms, value1); 
     ms.Position = 0; 
     var value2 = (SomeClass)formatter.Deserialize(ms); 
     Debug.Assert(value1.SomeValue1 == value2.SomeValue1); 
     Debug.Assert(value1.SomeValue2 == value2.SomeValue2); 
    } 
} 
관련 문제