Comparteix a través de


CodeDomSerializerBase.SerializeToExpression Método

Definición

Serializa el objeto determinado en una expresión.

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

IDesignerSerializationManager que se va a usar para la serialización.

value
Object

El objeto que se va a serializar. Puede ser null.

Devoluciones

Objeto CodeExpression si se puede serializar value; de lo contrario, null.

Excepciones

manager es null.

Comentarios

El value parámetro puede ser null, en cuyo caso se devolverá una expresión primitiva.

El SerializeToExpression método usa las siguientes reglas para serializar tipos:

  1. Primero llama al GetExpression método para ver si ya se ha creado una expresión para el objeto . Si es así, devuelve la expresión existente.

  2. A continuación, busca el serializador del objeto y le pide que se serialice.

  3. Si el valor devuelto del serializador del objeto es , CodeExpressionse devuelve la expresión .

  4. Realiza una última llamada a GetExpression para ver si el serializador agregó una expresión.

  5. Por último, devuelve null.

Si no se pudo crear ninguna expresión y no se pudo encontrar ningún serializador adecuado, se notificará un error a través del administrador de serialización. No se notificará ningún error si se encontró un serializador, pero no se pudo generar una expresión. En este caso, se supone que el serializador ya informó del error o no intentó serializar el objeto.

Si el serializador devolvió una instrucción o una colección de instrucciones, esas instrucciones no se descartarán. El SerializeToExpression método buscará primero en StatementContext la pila de contexto y agregará instrucciones a la propiedad del objeto de contexto de StatementCollection instrucción. Si no hay ningún contexto de instrucción, el SerializeToExpression método buscará en el contexto CodeStatementCollection de y agregará las instrucciones allí. Si no se encuentra ningún lugar para agregar las instrucciones, se generará un error.

Nota

No debe llamar al SerializeToExpression método dentro Serialize de al serializar su propio objeto. En su lugar, debe llamar a GetExpression. Si devuelve null, cree su propia expresión y llame a SetExpression. A continuación, continúe con el resto de la serialización.

Se aplica a

Consulte también