CodeDomSerializerBase.SerializeToExpression Método

Definição

Serializa o objeto dado numa 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);
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

A IDesignerSerializationManager usar para serialização.

value
Object

O objetivo a serializar. Pode ser null.

Devoluções

Um CodeExpression objeto se value pode ser serializado; caso contrário, null.

Exceções

manager é null.

Observações

O value parâmetro pode ser null, caso em que uma expressão primitiva será devolvida.

O SerializeToExpression método utiliza as seguintes regras para serializar tipos:

  1. Primeiro chama o GetExpression método para verificar se uma expressão já foi criada para o objeto. Se sim, devolve a expressão existente.

  2. Depois, localiza o serializador do objeto e pede-lhe que serialize.

  3. Se o valor de retorno do serializador do objeto for um CodeExpression, a expressão é devolvida.

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

  5. Finalmente, devolve null.

Se não puder ser criada nenhuma expressão e não for encontrado um serializador adequado, um erro será reportado através do gestor de serialização. Nenhum erro será reportado se foi encontrado um serializador mas não conseguiu produzir uma expressão. Neste caso, assume-se que o serializador já reportou o erro ou não tentou serializar o objeto.

Se o serializador devolveu uma instrução ou uma coleção de instruções, essas instruções não serão descartadas. O SerializeToExpression método procura primeiro um StatementContext na pilha de contexto e adiciona instruções à propriedade do StatementCollection objeto de contexto da instrução. Se não houver contexto de instruções, o SerializeToExpression método irá procurar no contexto a CodeStatementCollection e adicionar as instruções aí. Se não for encontrado um local para adicionar as sentenças, será gerado um erro.

Note

Não deves chamar o SerializeToExpression método dentro Serialize ao serializar o teu próprio objeto. Em vez disso, deves ligar GetExpressionpara . Se regressar null, crie a sua própria expressão e chame SetExpression. Depois prossiga com o resto da sua serialização.

Aplica-se a

Ver também