ObjectStateFormatter.Deserialize Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Deserializuje wykres stanu obiektu z postaci serializowanej.
Przeciążenia
Deserialize(Stream) |
Deserializuje wykres stanu obiektu z jego postaci serializowanej binarnej, który znajduje się w określonym Stream obiekcie. |
Deserialize(String) |
Deserializuje wykres stanu obiektu z serializowanej postaci ciągu zakodowanej w formacie base64. |
Uwagi
Ważne
Wywoływanie tej metody z niezaufanymi danymi jest zagrożeniem bezpieczeństwa. Wywołaj tę metodę tylko z zaufanymi danymi. Aby uzyskać więcej informacji, zobacz Validate All Inputs (Weryfikowanie wszystkich danych wejściowych).
Deserialize(Stream)
Deserializuje wykres stanu obiektu z jego postaci serializowanej binarnej, który znajduje się w określonym Stream obiekcie.
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
Element Stream , który ObjectStateFormatter deserializuje do zainicjowanego object
elementu .
Zwraca
Obiekt reprezentujący deserializowany wykres stanu obiektu.
Wyjątki
Określony inputStream
parametr to null
.
Wyjątek występuje podczas deserializacji elementu Stream. Komunikat o wyjątku jest dołączany do komunikatu .ArgumentException
Przykłady
W poniższym przykładzie kodu pokazano, jak klasa pochodząca z klasy inicjuje PageStatePersisterViewState kolekcję. W tym przykładzie ViewState kolekcja została przypisana do First pola Pair obiektu i serializowana do pliku przy użyciu ObjectStateFormatter klasy . Load Gdy metoda jest wywoływana, Deserialize(Stream) metoda jest używana do deserializacji stanu widoku z pliku, a ViewState właściwość jest inicjowana. Ten przykład kodu jest częścią większego przykładu udostępnionego PageStatePersister dla klasy .
//
// 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
Uwagi
Każdy wykres stanu obiektu, który jest serializowany za pomocą Serialize metody, można deserializować za pomocą Deserialize metody . Metoda Deserialize(Stream) służy do przywracania grafu stanu obiektu przechowywanego Streamw obiekcie , na przykład FileStream.
Ważne
Wywoływanie tej metody z niezaufanymi danymi jest zagrożeniem bezpieczeństwa. Wywołaj tę metodę tylko z zaufanymi danymi. Aby uzyskać więcej informacji, zobacz Validate All Inputs (Weryfikowanie wszystkich danych wejściowych).
Dotyczy
Deserialize(String)
Deserializuje wykres stanu obiektu z serializowanej postaci ciągu zakodowanej w formacie 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
Ciąg, który ObjectStateFormatter deserializuje do zainicjowanego obiektu.
Zwraca
Obiekt reprezentujący deserializowany wykres stanu obiektu.
Wyjątki
Określony element inputString
jest null
lub ma Length wartość 0.
Serializowane dane są nieprawidłowe.
Sprawdzanie poprawności kodu uwierzytelniania maszynowego (MAC) wykonywane w przypadku niepowodzenia deserializacji stanu widoku.
Przykłady
W poniższym przykładzie kodu pokazano, jak zaimplementować metodę, która deserializuje ciąg zakodowany w formacie base64 i zwraca ICollection kolekcję ustawień właściwości. Ten przykład kodu opiera się na ustawieniach właściwości, które zostały serializowane z klasą ObjectStateFormatter , jak pokazano w metodzie 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
Uwagi
Każdy wykres stanu obiektu, który jest serializowany za pomocą Serialize metody, można deserializować za pomocą Deserialize metody . Metoda Deserialize(String) służy do przywracania grafu stanu obiektu przechowywanego w postaci ciągów zakodowanych w formacie base64.
Ważne
Wywoływanie tej metody z niezaufanymi danymi jest zagrożeniem bezpieczeństwa. Wywołaj tę metodę tylko z zaufanymi danymi. Aby uzyskać więcej informacji, zobacz Validate All Inputs (Weryfikowanie wszystkich danych wejściowych).