Поделиться через


CodeDomSerializerBase.SerializeToExpression Метод

Определение

Сериализует заданный объект в выражение.

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

Параметры

manager
IDesignerSerializationManager

Используется IDesignerSerializationManager для сериализации.

value
Object

Объект для сериализации. Может иметь значение null.

Возвращаемое значение

Объект, CodeExpression если value его можно сериализовать; в противном случае null.

Исключения

manager равно null.

Комментарии

Параметр value может быть null, в этом случае будет возвращено примитивное выражение.

Метод SerializeToExpression использует следующие правила для сериализации типов:

  1. GetExpression Сначала вызывает метод, чтобы узнать, создано ли выражение для объекта. В этом случае возвращается существующее выражение.

  2. Затем он находит сериализатор объекта и просит его сериализовать.

  3. Если возвращаемое значение сериализатора объекта является объектом CodeExpression, возвращается выражение.

  4. Он делает один последний вызов, чтобы узнать GetExpression , добавил ли сериализатор выражение.

  5. Наконец, возвращается null.

Если не удалось создать выражение и не удалось найти подходящий сериализатор, сообщение об ошибке будет сообщено с помощью диспетчера сериализации. Если сериализатор найден, но он не удалось создать выражение, не будет сообщено об ошибке. В этом случае предполагается, что сериализатор либо уже сообщил об ошибке, либо не попытался сериализировать объект.

Если сериализатор вернул инструкцию или коллекцию инструкций, эти инструкции не будут удалены. Метод SerializeToExpression сначала будет искать стек StatementContext контекста и добавлять инструкции в свойство объекта контекста StatementCollection инструкции. Если контекст инструкций отсутствует, SerializeToExpression метод будет выглядеть в контексте для CodeStatementCollection инструкций и добавить их туда. Если не удается найти место для добавления инструкций, будет создана ошибка.

Замечание

При сериализации собственного объекта метод Serialize не следует вызыватьSerializeToExpression. Вместо этого следует вызвать GetExpression. Если он возвращается null, создайте собственное выражение и вызов SetExpression. Затем перейдите к остальной части сериализации.

Применяется к

См. также раздел