Sdílet prostřednictvím


CodeDomSerializerBase.SerializeToExpression Metoda

Definice

Serializuje daný objekt do výrazu.

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

Parametry

value
Object

Objekt, který se má serializovat. Může to být null.

Návraty

CodeExpression Objekt, pokud value lze serializovat; jinak, null.

Výjimky

manager je null.

Poznámky

Parametr value může být nullv takovém případě vrácen primitivní výraz.

Metoda SerializeToExpression používá následující pravidla pro serializaci typů:

  1. Nejprve volá metodu GetExpression , aby viděla, zda byl pro objekt již vytvořen výraz. Pokud ano, vrátí existující výraz.

  2. Pak vyhledá serializátor objektu a požádá ho o serializaci.

  3. Pokud je návratová hodnota serializátoru objektu CodeExpression, vrátí se výraz.

  4. Provede poslední volání, které GetExpression zjistí, jestli serializátor přidal výraz.

  5. Nakonec se vrátí null.

Pokud nelze vytvořit žádný výraz a nebyl nalezen žádný vhodný serializátor, bude hlášena chyba prostřednictvím správce serializace. Pokud byl nalezen serializátor, nebude hlášena žádná chyba, ale nepodařilo se vytvořit výraz. V tomto případě se předpokládá, že serializátor již oznámil chybu nebo se nepokoušel serializovat objekt.

Pokud serializátor vrátil příkaz nebo kolekci příkazů, nebudou tyto příkazy zahozeny. Metoda SerializeToExpression nejprve vyhledá StatementContext v zásobníku kontextu a přidá příkazy do vlastnosti objektu kontextu příkazu StatementCollection . Pokud neexistuje žádný kontext příkazu, SerializeToExpression metoda bude hledat v kontextu pro CodeStatementCollection a přidat příkazy tam. Pokud nelze najít žádné místo pro přidání příkazů, vygeneruje se chyba.

Poznámka:

Při serializaci vlastního objektu byste neměli volat metodu SerializeToExpressionSerialize . Místo toho byste měli zavolat GetExpression. Pokud se vrátí null, vytvořte vlastní výraz a volejte SetExpression. Pak pokračujte ve zbývající části serializace.

Platí pro

Viz také