この記事は機械翻訳されています。英語版の記事を表示するには、[英語] のチェック ボックスをオンにしてください。また、テキストにマウス ポインターを合わせると、ポップアップ ウィンドウに英語のテキストを表示することもできます。
翻訳
英語

ObjectStateFormatter クラス

 

公開日: 2016年10月

オブジェクトの状態を表すオブジェクト グラフをシリアル化および逆シリアル化します。 このクラスは継承できません。

名前空間:   System.Web.UI
アセンブリ:  System.Web (System.Web.dll 内)

System.Object
  System.Web.UI.ObjectStateFormatter

public sealed class ObjectStateFormatter : IStateFormatter, IFormatter

名前説明
System_CAPS_pubmethodObjectStateFormatter()

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

名前説明
System_CAPS_pubmethodDeserialize(Stream)

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

System_CAPS_pubmethodDeserialize(String)

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

System_CAPS_pubmethodEquals(Object)

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

System_CAPS_pubmethodGetHashCode()

既定のハッシュ関数として機能します。(Object から継承されます。)

System_CAPS_pubmethodGetType()

現在のインスタンスの Type を取得します。(Object から継承されます。)

System_CAPS_pubmethodSerialize(Object)

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

System_CAPS_pubmethodSerialize(Stream, Object)

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

System_CAPS_pubmethodToString()

現在のオブジェクトを表す文字列を返します。(Object から継承されます。)

名前説明
System_CAPS_pubinterfaceSystem_CAPS_privmethodIFormatter.Deserialize(Stream)

この API は 製品 インフラストラクチャをサポートします。コードから直接使用するためのものではありません。 このメンバーの詳細については、「ObjectStateFormatter.Deserialize」を参照してください。

System_CAPS_pubinterfaceSystem_CAPS_privmethodIFormatter.Serialize(Stream, Object)

この API は 製品 インフラストラクチャをサポートします。コードから直接使用するためのものではありません。 このメンバーの詳細については、「ObjectStateFormatter.Serialize」を参照してください。

System_CAPS_pubinterfaceSystem_CAPS_privmethodIStateFormatter.Deserialize(String)

このメンバーの詳細については、「ObjectStateFormatter.Deserialize」を参照してください。

System_CAPS_pubinterfaceSystem_CAPS_privmethodIStateFormatter.Serialize(Object)

このメンバーの詳細については、「ObjectStateFormatter.Serialize」を参照してください。

System_CAPS_pubinterfaceSystem_CAPS_privpropertyIFormatter.Binder

このメンバーの詳細については、「Formatter.Binder」を参照してください。

System_CAPS_pubinterfaceSystem_CAPS_privpropertyIFormatter.Context

このメンバーの詳細については、「IFormatter.Context」を参照してください。

System_CAPS_pubinterfaceSystem_CAPS_privpropertyIFormatter.SurrogateSelector

このメンバーの詳細については、「System.Runtime.Serialization.SurrogateSelector」を参照してください。

ObjectStateFormatter クラスがシリアル化し、コンパクトな形式でのオブジェクトの状態のグラフを逆シリアル化します。

ObjectStateFormatter によって使用される、 PageStatePersister クラスとビュー ステートをシリアル化し、コントロールの状態から派生するクラス。 使用して、 LosFormatter ASP.NET インフラストラクチャのさまざまな部分の書式設定オブジェクトの状態グラフを提供するクラス。

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 クラスです。

上記以外の他の種類がバイナリでシリアル化されたを使用して、 BinaryFormatter 実装するオブジェクト、 ISerializable インターフェイスまたはで修飾された、 SerializableAttribute 属性です。 ObjectStateFormatter クラスは、任意のシリアル化可能な種類については最適化されません。

場合、 ObjectStateFormatter クラスは、シリアル化できない型を検出した、 ArgumentException 例外がスローされます。

次のコード例は、方法から派生するクラスについて説明します。、 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.");
    }
}

.NET Framework
2.0 以降で使用可能

この型のパブリック static (Visual Basic では Shared ) メンバーはスレッド セーフです。インスタンス メンバーの場合は、スレッド セーフであるとは限りません。

トップに戻る
表示: