ObjectStateFormatterとは? わかりやすく解説

ObjectStateFormatter クラス

メモ : このクラスは、.NET Framework version 2.0 で新しく追加されたものです。

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

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

Public NotInheritable Class
 ObjectStateFormatter
    Implements IStateFormatter, IFormatter
Dim instance As ObjectStateFormatter
public sealed class ObjectStateFormatter :
 IStateFormatter, IFormatter
public ref class ObjectStateFormatter sealed
 : IStateFormatter, IFormatter
public final class ObjectStateFormatter implements
 IStateFormatter, IFormatter
public final class ObjectStateFormatter implements
 IStateFormatter, IFormatter
解説解説

ObjectStateFormatter クラスは、オブジェクトの状態グラフを圧縮形式でシリアル化したり逆シリアル化したりします。

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

ObjectStateFormatter クラスは、多くの共通 .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

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

前述の表に含まれていない型は、ISerializable インターフェイスを実装したり、SerializableAttribute 属性が付いている場合に、BinaryFormatter オブジェクトを使用してバイナリ シリアル化されます。ObjectStateFormatter クラスは、これらのシリアル化できる型に対しては最適化されません。

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

使用例使用例

PageStatePersister クラスの派生クラスから StateFormatter プロパティにアクセスして、ObjectStateFormatter インスタンスを取得し、ビューステートとコントロールの状態をシリアル化してストリームにする方法を次のコード例に示します。このコード例は、PageStatePersister クラスのトピックで取り上げているコード例の一部分です。

'
' 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
//
// 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.");
    }
}
継承階層継承階層
System.Object
  System.Web.UI.ObjectStateFormatter
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
ObjectStateFormatter メンバ
System.Web.UI 名前空間

ObjectStateFormatter コンストラクタ


ObjectStateFormatter プロパティ


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

  名前 説明
インターフェイスの明示的な実装 System.Runtime.Serialization.IFormatter.Binder このメンバの説明については、Formatter.Binder のトピックを参照してください。
インターフェイスの明示的な実装 System.Runtime.Serialization.IFormatter.Context このメンバの説明については、IFormatter.Context のトピックを参照してください。
インターフェイスの明示的な実装 System.Runtime.Serialization.IFormatter.SurrogateSelector このメンバの説明については、System.Runtime.Serialization.SurrogateSelector のトピックを参照してください。
参照参照

関連項目

ObjectStateFormatter クラス
System.Web.UI 名前空間

ObjectStateFormatter メソッド


パブリック メソッドパブリック メソッド

プロテクト メソッドプロテクト メソッド
明示的インターフェイスの実装明示的インターフェイスの実装
  名前 説明
インターフェイスの明示的な実装 System.Runtime.Serialization.IFormatter.Deserialize このメンバの説明については、ObjectStateFormatter.Deserialize のトピックを参照してください。
インターフェイスの明示的な実装 System.Runtime.Serialization.IFormatter.Serialize このメンバの説明については、ObjectStateFormatter.Serialize のトピックを参照してください。
インターフェイスの明示的な実装 System.Web.UI.IStateFormatter.Deserialize このメンバの説明については、ObjectStateFormatter.Deserialize のトピックを参照してください。
インターフェイスの明示的な実装 System.Web.UI.IStateFormatter.Serialize このメンバの説明については、ObjectStateFormatter.Serialize のトピックを参照してください。
参照参照

関連項目

ObjectStateFormatter クラス
System.Web.UI 名前空間

ObjectStateFormatter メンバ

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

ObjectStateFormatter データ型で公開されるメンバを以下の表に示します。


パブリック コンストラクタパブリック コンストラクタ
  名前 説明
パブリック メソッド ObjectStateFormatter ObjectStateFormatter クラスの新しいインスタンスを初期化します。
パブリック メソッドパブリック メソッド
プロテクト メソッドプロテクト メソッド
明示的インターフェイスの実装明示的インターフェイスの実装
  名前 説明
インターフェイスの明示的な実装 System.Runtime.Serialization.IFormatter.Deserialize このメンバの説明については、ObjectStateFormatter.Deserialize のトピックを参照してください。
インターフェイスの明示的な実装 System.Runtime.Serialization.IFormatter.Serialize このメンバの説明については、ObjectStateFormatter.Serialize のトピックを参照してください。
インターフェイスの明示的な実装 System.Web.UI.IStateFormatter.Deserialize このメンバの説明については、ObjectStateFormatter.Deserialize のトピックを参照してください。
インターフェイスの明示的な実装 System.Web.UI.IStateFormatter.Serialize このメンバの説明については、ObjectStateFormatter.Serialize のトピックを参照してください。
インターフェイスの明示的な実装 System.Runtime.Serialization.IFormatter.Binder このメンバの説明については、Formatter.Binder のトピックを参照してください。
インターフェイスの明示的な実装 System.Runtime.Serialization.IFormatter.Context このメンバの説明については、IFormatter.Context のトピックを参照してください。
インターフェイスの明示的な実装 System.Runtime.Serialization.IFormatter.SurrogateSelector このメンバの説明については、System.Runtime.Serialization.SurrogateSelector のトピックを参照してください。
参照参照

関連項目

ObjectStateFormatter クラス
System.Web.UI 名前空間



英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

「ObjectStateFormatter」の関連用語

ObjectStateFormatterのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



ObjectStateFormatterのページの著作権

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS