ObjectStateFormatter.Deserialize メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
オブジェクトの状態グラフをそのシリアル化された形式から逆シリアル化します。
オーバーロード
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。
戻り値
逆シリアル化されたオブジェクトの状態グラフを表すオブジェクト。
例外
指定された inputStream
は null
です。
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 が、初期化したオブジェクトに逆シリアル化する文字列。
戻り値
逆シリアル化されたオブジェクトの状態グラフを表すオブジェクト。
例外
指定された inputString
が null
か、その 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 でエンコードされた文字列形式で格納されているオブジェクト状態グラフを復元するために使用されます。
重要
信頼されていないデータを指定してこのメソッドを呼び出すことは、セキュリティ上のリスクが伴います。 このメソッドは信頼されたデータでのみ呼び出してください。 詳細については、「 すべての入力を検証する」を参照してください。
適用対象
.NET