ObjectStateFormatter.Deserialize Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Deserializuje graf stavu objektu ze serializovaného formuláře.
Přetížení
Deserialize(Stream) |
Deserializes graf stavu objektu z jeho binární-serializované formy, která je obsažena v zadaném Stream objektu. |
Deserialize(String) |
Deserializes graf stavu objektu z jeho serializované base64 kódované řetězcové formy. |
Poznámky
Důležité
Volání této metody s nedůvěryhodnými daty představuje bezpečnostní riziko. Volání této metody pouze s důvěryhodnými daty. Další informace najdete v tématu Ověření všech vstupů.
Deserialize(Stream)
Deserializes graf stavu objektu z jeho binární-serializované formy, která je obsažena v zadaném Stream objektu.
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
Parametry
- inputStream
- Stream
A Stream , že ObjectStateFormatter deserializuje do inicializovaného object
.
Návraty
Objekt, který představuje deserializovaný graf stavu objektu.
Výjimky
Zadaná inputStream
hodnota je null
.
Při deserializaci dojde k výjimce Stream. Zpráva o výjimce je připojena ke zprávě objektu ArgumentException.
Příklady
Následující příklad kódu ukazuje, jak třída odvozená z PageStatePersister třídy inicializuje kolekci ViewState . V tomto příkladu ViewState byla kolekce přiřazena k First poli objektu Pair a serializována do souboru pomocí ObjectStateFormatter třídy . Při zavolání LoadDeserialize(Stream) metody se metoda použije k deserializaci stavu zobrazení ze souboru a ViewState inicializuje se vlastnost. Tento příklad kódu je součástí většího příkladu PageStatePersister pro třídu .
//
// 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
Poznámky
Jakýkoli graf stavu objektu Serialize , který je serializován pomocí metody lze deserializovat pomocí Deserialize metody . Metoda Deserialize(Stream) se používá k obnovení grafu stavu objektu uloženého v objektu Stream, jako FileStreamje například .
Důležité
Volání této metody s nedůvěryhodnými daty představuje bezpečnostní riziko. Volání této metody pouze s důvěryhodnými daty. Další informace najdete v tématu Ověření všech vstupů.
Platí pro
Deserialize(String)
Deserializes graf stavu objektu z jeho serializované base64 kódované řetězcové formy.
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
Parametry
- inputString
- String
Řetězec, který ObjectStateFormatter deserializuje do inicializovaného objektu.
Návraty
Objekt, který představuje deserializovaný graf stavu objektu.
Výjimky
Zadaný inputString
parametr je null
nebo má Length hodnotu 0.
Serializovaná data jsou neplatná.
Ověřovací kontrola kódu MAC (Machine Authentication Code), která se provádí při selhání deserializace stavu zobrazení.
Příklady
Následující příklad kódu ukazuje, jak implementovat metodu, která deserializuje řetězec kódování base64 a vrátí ICollection kolekci nastavení vlastností. Tento příklad kódu závisí na nastavení vlastnosti byla serializována pomocí ObjectStateFormatter třídy, jak je znázorněno v Serialize(Object) metodě .
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
Poznámky
Jakýkoli graf stavu objektu Serialize , který je serializován pomocí metody lze deserializovat pomocí Deserialize metody . Metoda Deserialize(String) se používá k obnovení grafu stavu objektu uloženého ve formě řetězce s kódováním base64.
Důležité
Volání této metody s nedůvěryhodnými daty představuje bezpečnostní riziko. Volání této metody pouze s důvěryhodnými daty. Další informace najdete v tématu Ověření všech vstupů.