다음을 통해 공유


ObjectStateFormatter 클래스

정의

개체의 상태를 나타내는 개체 그래프를 직렬화 및 역직렬화합니다. 이 클래스는 상속될 수 없습니다.

public ref class ObjectStateFormatter sealed : System::Runtime::Serialization::IFormatter, System::Web::UI::IStateFormatter
public ref class ObjectStateFormatter sealed : System::Runtime::Serialization::IFormatter
public sealed class ObjectStateFormatter : System.Runtime.Serialization.IFormatter, System.Web.UI.IStateFormatter
public sealed class ObjectStateFormatter : System.Runtime.Serialization.IFormatter
type ObjectStateFormatter = class
    interface IStateFormatter
    interface IFormatter
Public NotInheritable Class ObjectStateFormatter
Implements IFormatter, IStateFormatter
Public NotInheritable Class ObjectStateFormatter
Implements IFormatter
상속
ObjectStateFormatter
구현

예제

다음 코드 예제는 클래스에서 파생 되는 방법을 보여 줍니다.는 PageStatePersister 액세스 클래스를 StateFormatter 검색할 속성을 ObjectStateFormatter 뷰 상태 및 컨트롤 상태를 스트림으로 serialize 하는 인스턴스. 이 코드 예제는에 대해 제공 된 큰 예제의 일부는 PageStatePersister 클래스입니다.

//
// Persist any ViewState and ControlState.
//
public override void Save()
{

    if (ViewState != null || ControlState != null)
    {
        if (Page.Session != null)
        {
            Stream stateStream = GetSecureStream();

            StreamWriter writer = new StreamWriter(stateStream);

            IStateFormatter formatter = this.StateFormatter;
            Pair statePair = new Pair(ViewState, ControlState);

            // Serialize the statePair object to a string.
            string serializedState = formatter.Serialize(statePair);

            writer.Write(serializedState);
            writer.Close();
            stateStream.Close();
        }
        else
        {
            throw new InvalidOperationException("Session needed for StreamPageStatePersister.");
        }
    }
}
'
' Persist any ViewState and ControlState.
'
Public Overrides Sub Save()

    If Not (ViewState Is Nothing) OrElse Not (ControlState Is Nothing) Then
        If Not (Page.Session Is Nothing) Then

            Dim stateStream As Stream
            stateStream = GetSecureStream()

            ' Write a state string, using the StateFormatter.
            Dim writer As New StreamWriter(stateStream)

            Dim formatter As IStateFormatter
            formatter = Me.StateFormatter

            Dim statePair As New Pair(ViewState, ControlState)

            Dim serializedState As String
            serializedState = formatter.Serialize(statePair)

            writer.Write(serializedState)
            writer.Close()
            stateStream.Close()
        Else
            Throw New InvalidOperationException("Session needed for StreamPageStatePersister.")
        End If
    End If
End Sub

설명

경고

BinaryFormatter 는 안전 하지 않으며 안전 하 게 만들 수 없습니다. 자세한 내용은 Binaryformatter 보안 가이드를 참조 하세요.

ObjectStateFormatter 클래스를 직렬화 및 압축 된 형식으로 개체 상태 그래프를 역직렬화 합니다.

ObjectStateFormatter 사용 되는 PageStatePersister 클래스와 뷰 상태를 serialize 하 고 상태를 제어 하에서 파생 되는 클래스입니다. 이 사용 하는 LosFormatter ASP.NET 인프라의 다양 한 부분에 대 한 서식 지정 하는 개체 상태 그래프를 제공 하는 클래스입니다.

ObjectStateFormatter 클래스를 serialize 하 고 많은 일반적인.NET Framework 참조 형식 뿐만 아니라 상수 서식을 지정 하도록 최적화 됩니다. 다음 표에서 최적화 된 형식을 나열 합니다.

Array DateTime Int16 String
ArrayList Double Int32 String
Boolean Enum null (Nothing) String.Empty
Byte Hashtable Pair Triplet
Char HybridDictionary Single Type
Color IDictionary

또한 변경 되지 않은 serialize 된 이진 작성기에서 및을 기존 문자열 형식 및 문자열 배열에 기록 됩니다 일부 문자열은 내부 문자열 테이블을 만들어 최적화 됩니다. 문자열을 문자열에 연결 된 이러한 테이블을 사용 하 여 가지의 TypeConverter 개체 또는 문자열의 인스턴스 실제로 인지를 IndexedString 클래스.

위에 나열 되지 않은 다른 종류는 이진 직렬화를 사용 하 여는 BinaryFormatter 구현 개체를 ISerializable 인터페이스 또는로 데코레이팅 되었습니다는 SerializableAttribute 특성입니다. ObjectStateFormatter 클래스는 이러한 직렬화 가능 형식에 대 한 최적화 되지 않습니다.

경우는 ObjectStateFormatter 클래스에 직렬화 되지 않은 형식을 발견 하면는 ArgumentException 예외가 throw 됩니다.

생성자

ObjectStateFormatter()

ObjectStateFormatter 클래스의 새 인스턴스를 초기화합니다.

메서드

Deserialize(Stream)

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

Deserialize(String)

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

Equals(Object)

지정된 개체가 현재 개체와 같은지 확인합니다.

(다음에서 상속됨 Object)
GetHashCode()

기본 해시 함수로 작동합니다.

(다음에서 상속됨 Object)
GetType()

현재 인스턴스의 Type을 가져옵니다.

(다음에서 상속됨 Object)
MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
Serialize(Object)

개체 상태 그래프를 base64 인코딩된 문자열로 serialize합니다.

Serialize(Stream, Object)

개체 상태 그래프를 지정한 Stream 개체로 serialize합니다.

ToString()

현재 개체를 나타내는 문자열을 반환합니다.

(다음에서 상속됨 Object)

명시적 인터페이스 구현

IFormatter.Binder

이 멤버에 대한 설명은 Binder를 참조하세요.

IFormatter.Context

이 멤버에 대한 설명은 Context를 참조하세요.

IFormatter.Deserialize(Stream)

이 멤버에 대한 설명은 Deserialize(Stream)를 참조하세요.

IFormatter.Serialize(Stream, Object)

이 멤버에 대한 설명은 Serialize(Stream, Object)를 참조하세요.

IFormatter.SurrogateSelector

이 멤버에 대한 설명은 SurrogateSelector를 참조하세요.

IStateFormatter.Deserialize(String)

이 멤버에 대한 설명은 Deserialize(String)를 참조하세요.

IStateFormatter.Serialize(Object)

이 멤버에 대한 설명은 Serialize(Object)를 참조하세요.

적용 대상