CodeDomSerializerBase.SerializeToExpression 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.
Serializa o objeto fornecido em uma expressão.
protected:
System::CodeDom::CodeExpression ^ SerializeToExpression(System::ComponentModel::Design::Serialization::IDesignerSerializationManager ^ manager, System::Object ^ value);
protected System.CodeDom.CodeExpression SerializeToExpression (System.ComponentModel.Design.Serialization.IDesignerSerializationManager manager, object value);
protected System.CodeDom.CodeExpression? SerializeToExpression (System.ComponentModel.Design.Serialization.IDesignerSerializationManager manager, object? value);
member this.SerializeToExpression : System.ComponentModel.Design.Serialization.IDesignerSerializationManager * obj -> System.CodeDom.CodeExpression
Protected Function SerializeToExpression (manager As IDesignerSerializationManager, value As Object) As CodeExpression
Parâmetros
- manager
- IDesignerSerializationManager
O IDesignerSerializationManager a ser usado para serialização.
- value
- Object
O objeto a ser serializado. Pode ser null
.
Retornos
Um objeto CodeExpression se value
pode ser serializado; caso contrário, null
.
Exceções
manager
é null
.
Comentários
O value
parâmetro pode ser null
, nesse caso, uma expressão primitiva será retornada.
O SerializeToExpression método usa as seguintes regras para serializar tipos:
Primeiro, ele chama o GetExpression método para ver se uma expressão já foi criada para o objeto . Nesse caso, ele retorna a expressão existente.
Em seguida, ele localiza o serializador do objeto e solicita que ele serialize.
Se o valor retornado do serializador do objeto for um CodeExpression, a expressão será retornada.
Ele faz uma última chamada para GetExpression ver se o serializador adicionou uma expressão.
Por fim, ele retorna
null
.
Se nenhuma expressão puder ser criada e nenhum serializador adequado puder ser encontrado, um erro será relatado por meio do gerenciador de serialização. Nenhum erro será relatado se um serializador foi encontrado, mas não produziu uma expressão. Nesse caso, supõe-se que o serializador já relatou o erro ou não tentou serializar o objeto.
Se o serializador retornou uma instrução ou uma coleção de instruções, essas instruções não serão descartadas. O SerializeToExpression método primeiro procurará um StatementContext na pilha de contexto e adicionará instruções à propriedade do objeto de contexto de StatementCollection instrução. Se não houver contexto de instrução, o SerializeToExpression método procurará no contexto de um CodeStatementCollection e adicionará as instruções lá. Se nenhum local puder ser encontrado para adicionar as instruções, um erro será gerado.
Observação
Você não deve chamar o SerializeToExpression método dentro Serialize ao serializar seu próprio objeto. Em vez disso, você deve chamar GetExpression. Se ele retornar null
, crie sua própria expressão e chame SetExpression. Em seguida, prossiga com o restante da serialização.
Aplica-se a
Confira também
- IDesignerSerializationManager
- CodeStatementCollection
- CodeExpression
- StatementContext
- Dynamic Source Code Generation and Compilation (Compilação e geração de código-fonte dinâmico)