Language

ObjectStateFormatter.Deserialize メソッド

定義

シリアル化されたフォームからオブジェクト状態グラフを逆シリアル化します。

オーバーロード

名前 説明
Deserialize(Stream)

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

Deserialize(String)

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

注釈

Important

信頼されていないデータを使用してこのメソッドを呼び出すことは、セキュリティ上のリスクです。 このメソッドは、信頼できるデータでのみ呼び出します。 詳細については、「すべての入力を検証する」を参照してください。

Deserialize(Stream)

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

public:
 System::Object ^ Deserialize(System::IO::Stream ^ inputStream);
public object Deserialize(System.IO.Stream inputStream);
member this.Deserialize : System.IO.Stream -> obj
Public Function Deserialize (inputStream As Stream) As Object

パラメーター

inputStream
Stream

Streamが初期化されたObjectStateFormatterに逆シリアル化するobject。

返品

逆シリアル化されたオブジェクト状態グラフを表すオブジェクト。

例外

指定した inputStream が null。

Streamの逆シリアル化中に例外が発生します。 例外メッセージは、 ArgumentExceptionのメッセージに追加されます。

例

次のコード例は、 PageStatePersister クラスから派生したクラスが ViewState コレクションを初期化する方法を示しています。 この例では、ViewState コレクションがFirst オブジェクトのPair フィールドに割り当てられ、ObjectStateFormatter クラスを使用してファイルにシリアル化されています。 Load メソッドが呼び出されると、Deserialize(Stream) メソッドを使用してファイルからビューステートを逆シリアル化し、ViewState プロパティが初期化されます。 このコード例は、 PageStatePersister クラスに提供されるより大きな例の一部です。

//
// Load ViewState and ControlState.
//
public override void Load()
{
    Stream stateStream = GetSecureStream();

    // Read the state string, using the StateFormatter.
    StreamReader reader = new StreamReader(stateStream);

    IStateFormatter formatter = this.StateFormatter;
    string fileContents = reader.ReadToEnd();

    // Deserilize returns the Pair object that is serialized in
    // the Save method.
    Pair statePair = (Pair)formatter.Deserialize(fileContents);

    ViewState = statePair.First;
    ControlState = statePair.Second;
    reader.Close();
    stateStream.Close();
}
'
' Load ViewState and ControlState.
'
Public Overrides Sub Load()

    Dim stateStream As Stream
    stateStream = GetSecureStream()

    ' Read the state string, using the StateFormatter.
    Dim reader As New StreamReader(stateStream)

    Dim serializedStatePair As String
    serializedStatePair = reader.ReadToEnd
    Dim statePair As Pair

    Dim formatter As IStateFormatter
    formatter = Me.StateFormatter

    ' Deserilize returns the Pair object that is serialized in
    ' the Save method.      
    statePair = CType(formatter.Deserialize(serializedStatePair), Pair)

    ViewState = statePair.First
    ControlState = statePair.Second
    reader.Close()
    stateStream.Close()
End Sub

注釈

Serialize メソッドでシリアル化されたオブジェクト状態グラフは、Deserialize メソッドで逆シリアル化できます。 Deserialize(Stream)メソッドは、StreamなどのFileStreamに格納されているオブジェクト状態グラフを復元するために使用されます。

Important

信頼されていないデータを使用してこのメソッドを呼び出すことは、セキュリティ上のリスクです。 このメソッドは、信頼できるデータでのみ呼び出します。 詳細については、「すべての入力を検証する」を参照してください。

適用対象

Deserialize(String)

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

public:
 System::Object ^ Deserialize(System::String ^ inputString);
public object Deserialize(string inputString);
member this.Deserialize : string -> obj
Public Function Deserialize (inputString As String) As Object

パラメーター

inputString
String

ObjectStateFormatterが初期化されたオブジェクトに逆シリアル化する文字列。

返品

逆シリアル化されたオブジェクト状態グラフを表すオブジェクト。

例外

指定した inputString が null されているか、 Length が 0 です。

シリアル化されたデータが無効です。

ビューステートの逆シリアル化が失敗したときに実行されるマシン認証コード (MAC) 検証チェック。

例

次のコード例では、base64 でエンコードされた文字列を逆シリアル化し、プロパティ設定の ICollection コレクションを返すメソッドを実装する方法を示します。 このコード例は、ObjectStateFormatter メソッドに示すように、Serialize(Object) クラスでシリアル化されたプロパティ設定に依存しています。

private ICollection LoadControlProperties (string serializedProperties) {

    ICollection controlProperties = null;

    // Create an ObjectStateFormatter to deserialize the properties.
    ObjectStateFormatter formatter = new ObjectStateFormatter();

    // Call the Deserialize method.
    controlProperties = (ArrayList) formatter.Deserialize(serializedProperties);

    return controlProperties;
}
Private Function LoadControlProperties(serializedProperties As String) As ICollection
   
   Dim controlProperties As ICollection = Nothing
   
   ' Create an ObjectStateFormatter to deserialize the properties.
   Dim formatter As New ObjectStateFormatter()
   
   ' Call the Deserialize method.
   controlProperties = CType(formatter.Deserialize(serializedProperties), ArrayList)
   
   Return controlProperties
End Function 'LoadControlProperties

注釈

Serialize メソッドでシリアル化されたオブジェクト状態グラフは、Deserialize メソッドで逆シリアル化できます。 Deserialize(String) メソッドは、base64 でエンコードされた文字列形式で格納されているオブジェクト状態グラフを復元するために使用されます。

Important

信頼されていないデータを使用してこのメソッドを呼び出すことは、セキュリティ上のリスクです。 このメソッドは、信頼できるデータでのみ呼び出します。 詳細については、「すべての入力を検証する」を参照してください。

適用対象