次の方法で共有


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 ストリームにシリアル化するインスタンスを取得する方法を示しています。 このコード例は、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 シリアル化するために、そこから派生するクラスおよびクラスによって使用されます。 また、ASP.NET インフラストラクチャのさまざまな部分に対してオブジェクト状態グラフの書式設定を提供するためにも、クラスによってLosFormatter使用されます。

クラスはObjectStateFormatter、多くの一般的な.NET Framework参照型と定数をシリアル化して書式設定するように最適化されています。 次の表に、最適化される型の一覧を示します。

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

さらに、従来の文字列型と文字列配列は、シリアル化されたバイナリ ライターとの間で書き込まれますが、一部の文字列は内部文字列テーブルを作成することによって最適化されます。 文字列にオブジェクトが関連付けられている TypeConverter 場合、または文字列が実際にはクラスのインスタンスである場合は、これらのテーブルを使用して文字列が IndexedString 最適化されます。

上記以外の型は、インターフェイスを実装する場合、または属性でBinaryFormatterSerializableAttribute修飾されている場合は、オブジェクトをISerializable使用してバイナリ シリアル化されます。 クラスは ObjectStateFormatter 、これらのシリアル化可能な型のいずれにも最適化されていません。

クラスで ObjectStateFormatter シリアル化できない型が見つかった場合は、 ArgumentException 例外がスローされます。

コンストラクター

ObjectStateFormatter()

ObjectStateFormatter クラスの新しいインスタンスを初期化します。

メソッド

Deserialize(Stream)

指定された Stream オブジェクトに含まれるバイナリ シリアル化された形式からオブジェクトの状態グラフを逆シリアル化します。

Deserialize(String)

オブジェクトの状態グラフをそのシリアル化された base64 エンコードされた文字列形式から逆シリアル化します。

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
Serialize(Object)

オブジェクトの状態グラフを base64 エンコードされた文字列にシリアル化します。

Serialize(Stream, Object)

オブジェクトの状態グラフを指定された Stream オブジェクトにシリアル化します。

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)」をご覧ください。

適用対象