Sdílet prostřednictvím


ObjectStateFormatter.Deserialize Metoda

Definice

Deserializuje graf stavu objektu ze serializované formy.

Přetížení

Name Description
Deserialize(Stream)

Deserializuje graf stavu objektu z binární serializované formy, která je obsažena v zadaném Stream objektu.

Deserialize(String)

Deserializuje graf stavu objektu ze serializovaného řetězcového formuláře s kódováním base64.

Poznámky

Důležité

Volání této metody s nedůvěryhodnými daty představuje bezpečnostní riziko. Volejte tuto metodu pouze s důvěryhodnými daty. Další informace naleznete v tématu Ověření všech vstupů.

Deserialize(Stream)

Deserializuje graf stavu objektu z 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é object.

Návraty

Objekt, který představuje deserializovaný graf stavu objektu.

Výjimky

Zadaná inputStream hodnota je null.

Při deserializaci Stream. Zpráva o výjimce je připojena ke zprávě .ArgumentException

Příklady

Následující příklad kódu ukazuje, jak třída, která je odvozena z PageStatePersister třídy inicializuje kolekci ViewState . V tomto příkladu ViewState byla kolekce přiřazena k First poli Pair objektu a serializována k souboru pomocí ObjectStateFormatter třídy. Load Při zavolání Deserialize(Stream) metody se metoda používá k deserializaci stavu zobrazení ze souboru a ViewState vlastnost je inicializována. Tento příklad kódu je součástí většího příkladu uvedeného pro třídu 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

Poznámky

Jakýkoli graf stavu objektu, který je serializován metodou Serialize lze deserializovat metodou Deserialize . 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. Volejte tuto metodu pouze s důvěryhodnými daty. Další informace naleznete v tématu Ověření všech vstupů.

Platí pro

Deserialize(String)

Deserializuje graf stavu objektu ze serializovaného řetězcového formuláře s kódováním 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

Parametry

inputString
String

Řetězec, který ObjectStateFormatter deserializuje do inicializovaného objektu.

Návraty

Objekt, který představuje deserializovaný graf stavu objektu.

Výjimky

inputString Zadané je null nebo má Length 0.

Serializovaná data jsou neplatná.

Kontrola ověření kódu MAC (Machine Authentication Code), která se provádí při selhání stavu deserializace zobrazení.

Příklady

Následující příklad kódu ukazuje, jak implementovat metodu, která deserializuje řetězec s kódováním base64 a vrací ICollection kolekci nastavení vlastnosti. Tento příklad kódu spoléhá na nastavení vlastnosti serializované s ObjectStateFormatter třídou, 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, který je serializován metodou Serialize lze deserializovat metodou Deserialize . Metoda Deserialize(String) se používá k obnovení grafu stavu objektu uloženého ve formuláři ř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. Volejte tuto metodu pouze s důvěryhodnými daty. Další informace naleznete v tématu Ověření všech vstupů.

Platí pro