ObjectStateFormatter ObjectStateFormatter ObjectStateFormatter ObjectStateFormatter Class

定義

オブジェクトの状態を表すオブジェクト グラフをシリアル化および逆シリアル化します。Serializes and deserializes object graphs that represent the state of an object. このクラスは継承できません。This class cannot be inherited.

public ref class ObjectStateFormatter sealed : System::Runtime::Serialization::IFormatter
public sealed class ObjectStateFormatter : System.Runtime.Serialization.IFormatter
type ObjectStateFormatter = class
    interface IStateFormatter
    interface IFormatter
Public NotInheritable Class ObjectStateFormatter
Implements IFormatter
継承
ObjectStateFormatterObjectStateFormatterObjectStateFormatterObjectStateFormatter
実装

次のコード例は、方法から派生するクラスについて説明します。、PageStatePersisterクラスへのアクセス、StateFormatterプロパティを取得する、ObjectStateFormatterビュー ステートとコントロールの状態をストリームにシリアル化するインスタンス。The following code example demonstrates how a class that derives from the PageStatePersister class accesses the StateFormatter property to retrieve an ObjectStateFormatter instance to serialize view state and control state to a stream. このコード例が示されている例の一部、PageStatePersisterクラス。This code example is part of a larger example provided for the PageStatePersister class.

//
// 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 'Save

注釈

ObjectStateFormatterクラスがシリアル化し、コンパクトな形式でオブジェクト状態のグラフを逆シリアル化します。The ObjectStateFormatter class serializes and deserializes object state graphs in a compact format.

ObjectStateFormatter 使って、PageStatePersisterクラスとビュー ステートをシリアル化およびコントロールの状態をそこから派生するクラス。ObjectStateFormatter is used by the PageStatePersister class and classes that derive from it to serialize view state and control state. 使用されても、 LosFormatter ASP.NET インフラストラクチャのさまざまな部分の書式設定オブジェクトの状態グラフを提供するクラス。It is also used by the LosFormatter class to provide object state graph formatting for various parts of the ASP.NET infrastructure.

ObjectStateFormatter多く一般的な .NET Framework 参照型では、定数と同じように書式設定およびシリアル化するクラスは最適化されています。The ObjectStateFormatter class is optimized to serialize and format many common .NET Framework reference types, as well as constants. 次の表では、最適化された型を示します。The following table lists the types that are optimized.

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

さらに、従来の文字列型と文字列の配列はへ書き込み中に、変更を加えず、シリアル化されたバイナリ ライターから一部の文字列は文字列の内部テーブルを作成して最適化されています。Additionally, while conventional string types and string arrays are written to and from a serialized binary writer unaltered, some strings are optimized by creating internal string tables. 文字列がある関連付けられている場合は、これらのテーブルを使用して文字列に最適化されたTypeConverterオブジェクトまたは文字列がのインスタンスでは実際には、IndexedStringクラス。Strings are optimized using these tables if the string has an associated TypeConverter object or if the string is actually an instance of the IndexedString class.

上記以外の他の種類がバイナリでシリアル化されたを使用して、BinaryFormatter実装するオブジェクト、ISerializableインターフェイスまたはで装飾、SerializableAttribute属性。Other types not listed above are binary-serialized using a BinaryFormatter object if they implement the ISerializable interface or are decorated with the SerializableAttribute attribute. ObjectStateFormatterクラスは、任意のシリアル化可能な種類については最適化されません。The ObjectStateFormatter class is not optimized for any of these serializable types.

場合、ObjectStateFormatterクラスがシリアル化可能でない型を検出した、ArgumentException例外がスローされます。If the ObjectStateFormatter class encounters a type that is not serializable, an ArgumentException exception is thrown.

コンストラクター

ObjectStateFormatter() ObjectStateFormatter() ObjectStateFormatter() ObjectStateFormatter()

ObjectStateFormatter クラスの新しいインスタンスを初期化します。Initializes a new instance of the ObjectStateFormatter class.

メソッド

Deserialize(Stream) Deserialize(Stream) Deserialize(Stream) Deserialize(Stream)

指定された Stream オブジェクトに含まれるバイナリ シリアル化された形式からオブジェクトの状態グラフを逆シリアル化します。Deserializes an object state graph from its binary-serialized form that is contained in the specified Stream object.

Deserialize(String) Deserialize(String) Deserialize(String) Deserialize(String)

オブジェクトの状態グラフをそのシリアル化された base64 エンコードされた文字列形式から逆シリアル化します。Deserializes an object state graph from its serialized base64-encoded string form.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(Inherited from Object)
Serialize(Object) Serialize(Object) Serialize(Object) Serialize(Object)

オブジェクトの状態グラフを base64 エンコードされた文字列にシリアル化します。Serializes an object state graph to a base64-encoded string.

Serialize(Stream, Object) Serialize(Stream, Object) Serialize(Stream, Object) Serialize(Stream, Object)

オブジェクトの状態グラフを指定された Stream オブジェクトにシリアル化します。Serializes an object state graph to the specified Stream object.

ToString() ToString() ToString() ToString()

現在のオブジェクトを表す文字列を返します。Returns a string that represents the current object.

(Inherited from Object)

明示的なインターフェイスの実装

IFormatter.Binder IFormatter.Binder IFormatter.Binder IFormatter.Binder

このメンバーの説明については、Binder のトピックを参照してください。For a description of this member, see Binder.

IFormatter.Context IFormatter.Context IFormatter.Context IFormatter.Context

このメンバーの説明については、Context のトピックを参照してください。For a description of this member, see Context.

IFormatter.Deserialize(Stream) IFormatter.Deserialize(Stream) IFormatter.Deserialize(Stream) IFormatter.Deserialize(Stream)

このメンバーの説明については、Deserialize(Stream) のトピックを参照してください。For a description of this member, see Deserialize(Stream).

IFormatter.Serialize(Stream, Object) IFormatter.Serialize(Stream, Object) IFormatter.Serialize(Stream, Object) IFormatter.Serialize(Stream, Object)

このメンバーの説明については、Serialize(Stream, Object) のトピックを参照してください。For a description of this member, see Serialize(Stream, Object).

IFormatter.SurrogateSelector IFormatter.SurrogateSelector IFormatter.SurrogateSelector IFormatter.SurrogateSelector

このメンバーの説明については、SurrogateSelector のトピックを参照してください。For a description of this member, see SurrogateSelector.

IStateFormatter.Deserialize(String) IStateFormatter.Deserialize(String) IStateFormatter.Deserialize(String) IStateFormatter.Deserialize(String)

このメンバーの説明については、Deserialize(String) のトピックを参照してください。For a description of this member, see Deserialize(String).

IStateFormatter.Serialize(Object) IStateFormatter.Serialize(Object) IStateFormatter.Serialize(Object) IStateFormatter.Serialize(Object)

このメンバーの説明については、Serialize(Object) のトピックを参照してください。For a description of this member, see Serialize(Object).

適用対象