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

manager
IDesignerSerializationManager

Chcete-li IDesignerSerializationManager použít pro serializaci.

value
Object

Objekt serializovat. Může být null.

Návraty

ObjektCodeExpression, pokud value lze serializovat; v opačném případě . null

Výjimky

manager je null.

Poznámky

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

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

  1. Nejprve zavolá metodu GetExpression , aby se zjistilo, jestli už byl pro objekt 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í, aby GetExpression se zjistilo, jestli serializátor přidal výraz.

  5. Nakonec vrátí null.

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

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

Poznámka

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

Platí pro

Viz také