ObjectStateFormatter.Deserialize メソッド

定義

オブジェクトの状態グラフをそのシリアル化された形式から逆シリアル化します。Deserializes an object state graph from serialized form.

オーバーロード

Deserialize(Stream)

指定された Stream オブジェクトに含まれるバイナリ シリアル化された形式からオブジェクトの状態グラフを逆シリアル化します。Deserializes an object state graph from its binary-serialized form that is contained in the specified Stream object.

Deserialize(String)

オブジェクトの状態グラフをそのシリアル化された base64 エンコードされた文字列形式から逆シリアル化します。Deserializes an object state graph from its serialized base64-encoded string form.

注釈

重要

信頼されていないデータを指定してこのメソッドを呼び出すことは、セキュリティ上のリスクが伴います。Calling this method with untrusted data is a security risk. このメソッドは信頼されたデータでのみ呼び出してください。Call this method only with trusted data. 詳しくは、「Data Validation」(データの入力規則) を参照してください。For more information, see Data Validation.

Deserialize(Stream)

指定された Stream オブジェクトに含まれるバイナリ シリアル化された形式からオブジェクトの状態グラフを逆シリアル化します。Deserializes an object state graph from its binary-serialized form that is contained in the specified Stream object.

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 に逆シリアル化する ObjectStateFormatterA Stream that the ObjectStateFormatter deserializes into an initialized object.

戻り値

逆シリアル化されたオブジェクトの状態グラフを表すオブジェクト。An object that represents a deserialized object state graph.

実装

例外

指定された inputStreamnull です。The specified inputStream is null.

Stream の逆シリアル化中に例外が発生しました。An exception occurs during deserialization of the Stream. ArgumentException のメッセージに、例外メッセージが追記されます。The exception message is appended to the message of the ArgumentException.

PageStatePersisterクラスから派生したクラスがコレクションをViewState初期化する方法を次のコード例に示します。The following code example demonstrates how a class that derives from the PageStatePersister class initializes the ViewState collection. この例ViewStateでは、コレクションがPairオブジェクトのFirstフィールドに割り当てられ、 ObjectStateFormatterクラスを使用してファイルにシリアル化されています。In this example, the ViewState collection has been assigned to the First field of a Pair object, and serialized to a file using the ObjectStateFormatter class. メソッドが呼び出されるとDeserialize(Stream) 、メソッドを使用してファイルViewStateからビューステートが逆シリアル化され、プロパティが初期化されます。 LoadWhen the Load method is called, the Deserialize(Stream) method is used to deserialize view state from the file, and the ViewState property is initialized. このコード例は、 PageStatePersisterクラスに対して提供される大規模な例の一部です。This code example is part of a larger example provided for the PageStatePersister class.

//
// 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メソッドを使用して逆シリアル化できます。Any object state graph that is serialized with the Serialize method can be deserialized with the Deserialize method. メソッドは、など、 Streamに格納されてFileStreamいるオブジェクト状態グラフを復元するために使用されます。 Deserialize(Stream)The Deserialize(Stream) method is used to restore an object state graph stored in a Stream, such as a FileStream.

重要

信頼されていないデータを指定してこのメソッドを呼び出すことは、セキュリティ上のリスクが伴います。Calling this method with untrusted data is a security risk. このメソッドは信頼されたデータでのみ呼び出してください。Call this method only with trusted data. 詳しくは、「Data Validation」(データの入力規則) を参照してください。For more information, see Data Validation.

Deserialize(String)

オブジェクトの状態グラフをそのシリアル化された base64 エンコードされた文字列形式から逆シリアル化します。Deserializes an object state graph from its serialized base64-encoded string form.

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 が、初期化したオブジェクトに逆シリアル化する文字列。A string that the ObjectStateFormatter deserializes into an initialized object.

戻り値

逆シリアル化されたオブジェクトの状態グラフを表すオブジェクト。An object that represents a deserialized object state graph.

実装

例外

指定された inputStringnull か、その Length が 0 です。The specified inputString is null or has a Length of 0.

シリアル化されたデータが無効です。The serialized data is invalid.

ビューステートの逆シリアル化時に実行される MAC (machine authentication code) 検証チェックに失敗しました。The machine authentication code (MAC) validation check that is performed when deserializing view state fails.

次のコード例は、base64 でエンコードされた文字列を逆シリアル化し、プロパティICollection設定のコレクションを返すメソッドを実装する方法を示しています。The following code example demonstrates how to implement a method that deserializes a base64-encoded string and returns an ICollection collection of property settings. このコード例では、 ObjectStateFormatter Serialize(Object)メソッドに示されているように、クラスでシリアル化されたプロパティ設定に依存しています。This code example relies on the property settings having been serialized with the ObjectStateFormatter class, as shown in the Serialize(Object) method.

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メソッドを使用して逆シリアル化できます。Any object state graph that is serialized with the Serialize method can be deserialized with the Deserialize method. メソッドDeserialize(String)は、base64 でエンコードされた文字列形式で格納されたオブジェクト状態グラフを復元するために使用されます。The Deserialize(String) method is used to restore an object state graph stored in base64-encoded string form.

重要

信頼されていないデータを指定してこのメソッドを呼び出すことは、セキュリティ上のリスクが伴います。Calling this method with untrusted data is a security risk. このメソッドは信頼されたデータでのみ呼び出してください。Call this method only with trusted data. 詳しくは、「Data Validation」(データの入力規則) を参照してください。For more information, see Data Validation.

適用対象