CodeDomSerializerBase.SerializeToExpression Metod

Definition

Serialiserar det angivna objektet till ett uttryck.

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

Parametrar

manager
IDesignerSerializationManager

Att IDesignerSerializationManager använda för serialisering.

value
Object

Objektet som ska serialiseras. Kan vara null.

Returer

Ett CodeExpression objekt om value kan serialiseras, annars . null

Undantag

manager är null.

Kommentarer

Parametern value kan vara null, i vilket fall ett primitivt uttryck returneras.

Metoden SerializeToExpression använder följande regler för serialiseringstyper:

  1. Den anropar GetExpression först metoden för att se om ett uttryck redan har skapats för objektet. I så fall returneras det befintliga uttrycket.

  2. Den letar sedan upp objektets serialiserare och ber den serialisera.

  3. Om returvärdet för objektets serialiserare är en CodeExpressionreturneras uttrycket.

  4. Det gör ett sista anrop för att GetExpression se om serialiseraren har lagt till ett uttryck.

  5. Slutligen returnerar nullden .

Om inget uttryck kunde skapas och det inte gick att hitta någon lämplig serialiserare rapporteras ett fel via serialiseringshanteraren. Inget fel rapporteras om en serialiserare hittades men det inte gick att skapa ett uttryck. I det här fallet antas det att serialiseraren antingen redan har rapporterat felet eller att den inte försökte serialisera objektet.

Om serialiseraren returnerade en instruktion eller en samling instruktioner ignoreras inte dessa instruktioner. Metoden SerializeToExpression söker först efter en StatementContext i kontextstacken och lägger till instruktioner i instruktionskontextobjektets StatementCollection egenskap. Om det inte finns någon instruktionskontext SerializeToExpression letar metoden i kontexten efter en CodeStatementCollection och lägger till -uttrycken där. Om det inte går att hitta någon plats för att lägga till uttrycken genereras ett fel.

Note

Du bör inte anropa SerializeToExpression metoden inom Serialize när du serialiserar ditt eget objekt. I stället bör du anropa GetExpression. Om den returnerar nullskapar du ett eget uttryck och anropar SetExpression. Fortsätt sedan med resten av serialiseringen.

Gäller för

Se även