Compartilhar via


ObjectStateFormatter.Deserialize Método

Definição

Desserializa um gráfico de estado do objeto da forma serializada.

Sobrecargas

Deserialize(Stream)

Desserializa um grafo de estado do objeto de sua forma serializada binária no objeto Stream especificado.

Deserialize(String)

Desserializa um grafo de estado do objeto da sua forma de cadeia de caracteres codificada em base64 serializada.

Comentários

Importante

Chamar este método quando você tiver dados não confiáveis é um risco à segurança. Chame esse método apenas quando você tiver dados confiáveis. Para obter mais informações, consulte Validar todas as entradas.

Deserialize(Stream)

Desserializa um grafo de estado do objeto de sua forma serializada binária no objeto Stream especificado.

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

Parâmetros

inputStream
Stream

Um Stream que o ObjectStateFormatter desserializa em um object inicializado.

Retornos

Um objeto que representa um gráfico de estado do objeto desserializado.

Exceções

O inputStream especificado é null.

Ocorrerá uma exceção durante a desserialização do Stream. A mensagem de exceção é acrescentada à mensagem do ArgumentException.

Exemplos

O exemplo de código a seguir demonstra como uma classe derivada da PageStatePersister classe inicializa a ViewState coleção. Neste exemplo, a ViewState coleção foi atribuída ao First campo de um Pair objeto e serializada para um arquivo usando a ObjectStateFormatter classe . Quando o Load método é chamado, o Deserialize(Stream) método é usado para desserializar o estado de exibição do arquivo e a ViewState propriedade é inicializada. Este exemplo de código faz parte de um exemplo maior fornecido para a PageStatePersister classe .

//
// 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

Comentários

Qualquer grafo de estado do objeto serializado com o Serialize método pode ser desserializado com o Deserialize método . O Deserialize(Stream) método é usado para restaurar um grafo de estado do objeto armazenado em um Stream, como um FileStream.

Importante

Chamar este método quando você tiver dados não confiáveis é um risco à segurança. Chame esse método apenas quando você tiver dados confiáveis. Para obter mais informações, consulte Validar todas as entradas.

Aplica-se a

Deserialize(String)

Desserializa um grafo de estado do objeto da sua forma de cadeia de caracteres codificada em base64 serializada.

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

Parâmetros

inputString
String

Uma cadeia de caracteres que o ObjectStateFormatter desserializa em um objeto inicializado.

Retornos

Um objeto que representa um gráfico de estado do objeto desserializado.

Exceções

O inputString especificado é null ou tem um Length de 0.

Os dados serializados são inválidos.

A verificação de validação MAC (Message Authentication Code) do computador que é executada quando há falha em desserializar o estado de exibição.

Exemplos

O exemplo de código a seguir demonstra como implementar um método que desserializa uma cadeia de caracteres codificada em base64 e retorna uma ICollection coleção de configurações de propriedade. Este exemplo de código depende das configurações de propriedade que foram serializadas com a ObjectStateFormatter classe , conforme mostrado no Serialize(Object) método .

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

Comentários

Qualquer grafo de estado do objeto serializado com o Serialize método pode ser desserializado com o Deserialize método . O Deserialize(String) método é usado para restaurar um grafo de estado do objeto armazenado na forma de cadeia de caracteres codificada em base64.

Importante

Chamar este método quando você tiver dados não confiáveis é um risco à segurança. Chame esse método apenas quando você tiver dados confiáveis. Para obter mais informações, consulte Validar todas as entradas.

Aplica-se a