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 использует следующие правила для сериализации типов:
GetExpression Сначала вызывает метод, чтобы узнать, создано ли выражение для объекта. В этом случае возвращается существующее выражение.
Затем он находит сериализатор объекта и просит его сериализовать.
Если возвращаемое значение сериализатора объекта является объектом CodeExpression, возвращается выражение.
Он делает один последний вызов, чтобы узнать GetExpression , добавил ли сериализатор выражение.
Наконец, возвращается
null.
Если не удалось создать выражение и не удалось найти подходящий сериализатор, сообщение об ошибке будет сообщено с помощью диспетчера сериализации. Если сериализатор найден, но он не удалось создать выражение, не будет сообщено об ошибке. В этом случае предполагается, что сериализатор либо уже сообщил об ошибке, либо не попытался сериализировать объект.
Если сериализатор вернул инструкцию или коллекцию инструкций, эти инструкции не будут удалены. Метод SerializeToExpression сначала будет искать стек StatementContext контекста и добавлять инструкции в свойство объекта контекста StatementCollection инструкции. Если контекст инструкций отсутствует, SerializeToExpression метод будет выглядеть в контексте для CodeStatementCollection инструкций и добавить их туда. Если не удается найти место для добавления инструкций, будет создана ошибка.
Замечание
При сериализации собственного объекта метод Serialize не следует вызыватьSerializeToExpression. Вместо этого следует вызвать GetExpression. Если он возвращается null, создайте собственное выражение и вызов SetExpression. Затем перейдите к остальной части сериализации.