ObjectStateFormatter クラス

定義

オブジェクトの状態を表すオブジェクト グラフをシリアル化および逆シリアル化します。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
継承
ObjectStateFormatter
実装

次のコード例では、 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

注釈

クラス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. また、ASP.NET インフラストラクチャのさまざまLosFormatterな部分に対してオブジェクト状態グラフの書式設定を提供するために、クラスによっても使用されます。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 クラスの新しいインスタンスを初期化します。Initializes a new instance of the ObjectStateFormatter class.

メソッド

Deserialize(Stream)

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

Deserialize(String)

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

Equals(Object)

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

(継承元 Object)
GetHashCode()

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

(継承元 Object)
GetType()

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

(継承元 Object)
MemberwiseClone()

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

(継承元 Object)
Serialize(Object)

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

Serialize(Stream, Object)

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

ToString()

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

(継承元 Object)

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

IFormatter.Binder

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

IFormatter.Context

このメンバーの詳細については、「Context」をご覧ください。For a description of this member, see Context.

IFormatter.Deserialize(Stream)

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

IFormatter.Serialize(Stream, Object)

このメンバーの詳細については、「Serialize(Stream, Object)」をご覧ください。For a description of this member, see Serialize(Stream, Object).

IFormatter.SurrogateSelector

このメンバーの詳細については、「SurrogateSelector」をご覧ください。For a description of this member, see SurrogateSelector.

IStateFormatter.Deserialize(String)

このメンバーの詳細については、「Deserialize(String)」をご覧ください。For a description of this member, see Deserialize(String).

IStateFormatter.Serialize(Object)

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

適用対象