CodeDomSerializerBase.SerializeToExpression(IDesignerSerializationManager, Object) Método

Definición

Serializa el objeto determinado en una expresión.Serializes the given object into an expression.

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

IDesignerSerializationManager que se va a usar para la serialización.The IDesignerSerializationManager to use for serialization.

value
Object

El objeto que se va a serializar.The object to serialize. Puede ser null.Can be null.

Devoluciones

CodeExpression

Objeto CodeExpression si se puede serializar value; de lo contrario, null.A CodeExpression object if value can be serialized; otherwise, null.

Excepciones

El valor de manager es null.manager is null.

Comentarios

El value parámetro puede ser null , en cuyo caso se devolverá una expresión primitiva.The value parameter can be null, in which case a primitive expression will be returned.

El SerializeToExpression método usa las siguientes reglas para serializar tipos:The SerializeToExpression method uses the following rules for serializing types:

  1. Primero llama al GetExpression método para ver si ya se ha creado una expresión para el objeto.It first calls the GetExpression method to see if an expression has already been created for the object. Si es así, devuelve la expresión existente.If so, it returns the existing expression.

  2. A continuación, busca el serializador del objeto y le pide que serialice.It then locates the object's serializer, and asks it to serialize.

  3. Si el valor devuelto del serializador del objeto es CodeExpression , se devuelve la expresión.If the return value of the object's serializer is a CodeExpression, the expression is returned.

  4. Realiza una última llamada a GetExpression para ver si el serializador ha agregado una expresión.It makes one last call to GetExpression to see if the serializer added an expression.

  5. Por último, devuelve null .Finally, it returns null.

Si no se pudo crear ninguna expresión y no se pudo encontrar ningún serializador adecuado, se inscribirá un error a través del administrador de serialización.If no expression could be created and no suitable serializer could be found, an error will be reported through the serialization manager. No se mostrará ningún error si se encontró un serializador, pero no se pudo generar una expresión.No error will be reported if a serializer was found but it failed to produce an expression. En este caso, se supone que el serializador ya ha comunicado el error o no ha intentado serializar el objeto.In this case, it is assumed that the serializer either already reported the error or it did not attempt to serialize the object.

Si el serializador devolvió una instrucción o una colección de instrucciones, esas instrucciones no se descartarán.If the serializer returned a statement or a collection of statements, those statements will not be discarded. El SerializeToExpression método buscará primero StatementContext en la pila de contexto y agregará instrucciones a la propiedad del objeto de contexto de instrucción StatementCollection .The SerializeToExpression method will first look for a StatementContext on the context stack and add statements to the statement context object's StatementCollection property. Si no hay ningún contexto de instrucciones, el método buscará SerializeToExpression en el contexto de CodeStatementCollection y agregará las instrucciones allí.If there is no statement context, the SerializeToExpression method will look in the context for a CodeStatementCollection and add the statements there. Si no se puede encontrar ningún lugar para agregar las instrucciones, se generará un error.If no place can be found to add the statements, an error will be generated.

Nota

No debe llamar al SerializeToExpression método dentro de Serialize al serializar su propio objeto.You should not call the SerializeToExpression method within Serialize when serializing your own object. En su lugar, debe llamar a GetExpression .Instead, you should call GetExpression. Si devuelve null , cree su propia expresión y llame a SetExpression .If it returns null, create your own expression and call SetExpression. Después, continúe con el resto de la serialización.Then proceed with the rest of your serialization.

Se aplica a

Consulte también