다음을 통해 공유


ObjectStateFormatter.Deserialize 메서드

정의

직렬화된 형식에서 개체 상태 그래프를 역직렬화합니다.

오버로드

Deserialize(Stream)

지정한 Stream 개체에 들어 있는 이진으로 직렬화된 형식에서 개체 상태 그래프를 역직렬화합니다.

Deserialize(String)

직렬화된 Base64 인코딩된 문자열 형식에서 개체 상태 그래프를 역직렬화합니다.

설명

중요

신뢰할 수 없는 데이터로 이 메서드를 호출하는 것은 보안상 위험합니다. 신뢰할 수 있는 데이터로만 이 메서드를 호출하세요. 자세한 내용은 모든 입력 유효성 검사를 참조하세요.

Deserialize(Stream)

지정한 Stream 개체에 들어 있는 이진으로 직렬화된 형식에서 개체 상태 그래프를 역직렬화합니다.

public:
 System::Object ^ Deserialize(System::IO::Stream ^ inputStream);
public object Deserialize (System.IO.Stream inputStream);
member this.Deserialize : System.IO.Stream -> obj
Public Function Deserialize (inputStream As Stream) As Object

매개 변수

inputStream
Stream

Stream에서 초기화된 object로 역직렬화하는 ObjectStateFormatter입니다.

반환

역직렬화된 개체 상태 그래프를 나타내는 개체입니다.

예외

지정된 inputStreamnull입니다.

Stream을 역직렬화하는 동안 예외가 발생하는 경우. 예외 메시지는 ArgumentException의 메시지에 추가됩니다.

예제

다음 코드 예제는 클래스에서 파생 되는 방법을 보여 줍니다.는 PageStatePersister 초기화 클래스는 ViewState 컬렉션입니다. 이 예제에서는 합니다 ViewState 컬렉션에 할당 된를 First 필드를 Pair 개체를 사용 하 여 파일 serialize를 ObjectStateFormatter 클래스입니다. 경우는 Load 메서드가 호출 되는 Deserialize(Stream) 메서드 파일에서 뷰 상태를 역직렬화하는 데 사용 됩니다 및 ViewState 속성이 초기화 됩니다. 이 코드 예제는에 대해 제공 된 큰 예제의 일부는 PageStatePersister 클래스입니다.

//
// Load ViewState and ControlState.
//
public override void Load()
{
    Stream stateStream = GetSecureStream();

    // Read the state string, using the StateFormatter.
    StreamReader reader = new StreamReader(stateStream);

    IStateFormatter formatter = this.StateFormatter;
    string fileContents = reader.ReadToEnd();

    // Deserilize returns the Pair object that is serialized in
    // the Save method.
    Pair statePair = (Pair)formatter.Deserialize(fileContents);

    ViewState = statePair.First;
    ControlState = statePair.Second;
    reader.Close();
    stateStream.Close();
}
'
' Load ViewState and ControlState.
'
Public Overrides Sub Load()

    Dim stateStream As Stream
    stateStream = GetSecureStream()

    ' Read the state string, using the StateFormatter.
    Dim reader As New StreamReader(stateStream)

    Dim serializedStatePair As String
    serializedStatePair = reader.ReadToEnd
    Dim statePair As Pair

    Dim formatter As IStateFormatter
    formatter = Me.StateFormatter

    ' Deserilize returns the Pair object that is serialized in
    ' the Save method.      
    statePair = CType(formatter.Deserialize(serializedStatePair), Pair)

    ViewState = statePair.First
    ControlState = statePair.Second
    reader.Close()
    stateStream.Close()
End Sub

설명

사용 하 여 직렬화되는 모든 개체 상태 그래프를 Serialize 메서드를 사용 하 여 역직렬화할 수는 Deserialize 메서드. 합니다 Deserialize(Stream) 메서드 복원에 저장 된 개체 상태 그래프를 사용 하는 Stream와 같은 FileStream입니다.

중요

신뢰할 수 없는 데이터로 이 메서드를 호출하는 것은 보안상 위험합니다. 신뢰할 수 있는 데이터로만 이 메서드를 호출하세요. 자세한 내용은 모든 입력 유효성 검사를 참조하세요.

적용 대상

Deserialize(String)

직렬화된 Base64 인코딩된 문자열 형식에서 개체 상태 그래프를 역직렬화합니다.

public:
 System::Object ^ Deserialize(System::String ^ inputString);
public object Deserialize (string inputString);
member this.Deserialize : string -> obj
Public Function Deserialize (inputString As String) As Object

매개 변수

inputString
String

ObjectStateFormatter에서 초기화된 개체로 역직렬화하는 문자열입니다.

반환

역직렬화된 개체 상태 그래프를 나타내는 개체입니다.

예외

지정한 inputStringnull이거나 Length가 0인 경우

serialize된 데이터가 유효하지 않은 경우

뷰 상태를 역직렬화할 때 수행된 MAC(컴퓨터 인증 코드) 유효성 검사가 실패한 경우

예제

다음 코드 예제에는 base64로 인코딩된 문자열을 역직렬화하 고 반환 하는 메서드를 구현 하는 방법을 보여 줍니다.는 ICollection 속성 설정의 컬렉션입니다. 이 코드 예제에서는 serialize 된 속성 설정을 사용 합니다 ObjectStateFormatter 에 표시 된 대로 클래스는 Serialize(Object) 메서드.

private ICollection LoadControlProperties (string serializedProperties) {

    ICollection controlProperties = null;

    // Create an ObjectStateFormatter to deserialize the properties.
    ObjectStateFormatter formatter = new ObjectStateFormatter();

    // Call the Deserialize method.
    controlProperties = (ArrayList) formatter.Deserialize(serializedProperties);

    return controlProperties;
}
Private Function LoadControlProperties(serializedProperties As String) As ICollection
   
   Dim controlProperties As ICollection = Nothing
   
   ' Create an ObjectStateFormatter to deserialize the properties.
   Dim formatter As New ObjectStateFormatter()
   
   ' Call the Deserialize method.
   controlProperties = CType(formatter.Deserialize(serializedProperties), ArrayList)
   
   Return controlProperties
End Function 'LoadControlProperties

설명

사용 하 여 직렬화되는 모든 개체 상태 그래프를 Serialize 메서드를 사용 하 여 역직렬화할 수는 Deserialize 메서드. Deserialize(String) 메서드 복원 base64로 인코딩된 문자열 형식으로 저장 하는 개체 상태 그래프를 사용 합니다.

중요

신뢰할 수 없는 데이터로 이 메서드를 호출하는 것은 보안상 위험합니다. 신뢰할 수 있는 데이터로만 이 메서드를 호출하세요. 자세한 내용은 모든 입력 유효성 검사를 참조하세요.

적용 대상