次の方法で共有


ObjectStateFormatter.Deserialize メソッド

定義

オブジェクトの状態グラフをそのシリアル化された形式から逆シリアル化します。

オーバーロード

Deserialize(Stream)

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

Deserialize(String)

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

注釈

重要

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

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 が、初期化した object に逆シリアル化する ObjectStateFormatter

戻り値

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

例外

指定された inputStreamnull です。

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

次のコード例は、 クラスから PageStatePersister 派生したクラスがコレクションを初期化する方法を ViewState 示しています。 この例では、ViewStateコレクションが オブジェクトの Pair フィールドにFirst割り当てられ、 クラスを使用して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)、 に格納されているオブジェクト状態グラフ (などFileStream) を復元するために使用されますStream

重要

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

適用対象

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 が、初期化したオブジェクトに逆シリアル化する文字列。

戻り値

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

例外

指定された inputStringnull か、その Length が 0 です。

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

ビューステートの逆シリアル化時に実行される MAC (machine authentication code) 検証チェックに失敗しました。

次のコード例では、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 でエンコードされた文字列形式で格納されているオブジェクト状態グラフを復元するために使用されます。

重要

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

適用対象