ObjectStateFormatter.Deserialize Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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.