Partilhar via


CodeDomSerializerBase.SerializeToExpression Método

Definição

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:

  1. 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.

  2. Em seguida, ele localiza o serializador do objeto e solicita que ele serialize.

  3. Se o valor retornado do serializador do objeto for um CodeExpression, a expressão será retornada.

  4. Ele faz uma última chamada para GetExpression ver se o serializador adicionou uma expressão.

  5. 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