CodeDomSerializerBase.DeserializeExpression Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Deserialiserar det angivna uttrycket till ett minnesinternt objekt.
protected:
System::Object ^ DeserializeExpression(System::ComponentModel::Design::Serialization::IDesignerSerializationManager ^ manager, System::String ^ name, System::CodeDom::CodeExpression ^ expression);
protected object DeserializeExpression(System.ComponentModel.Design.Serialization.IDesignerSerializationManager manager, string name, System.CodeDom.CodeExpression expression);
protected object? DeserializeExpression(System.ComponentModel.Design.Serialization.IDesignerSerializationManager manager, string? name, System.CodeDom.CodeExpression? expression);
member this.DeserializeExpression : System.ComponentModel.Design.Serialization.IDesignerSerializationManager * string * System.CodeDom.CodeExpression -> obj
Protected Function DeserializeExpression (manager As IDesignerSerializationManager, name As String, expression As CodeExpression) As Object
Parametrar
- manager
- IDesignerSerializationManager
Att IDesignerSerializationManager använda för serialisering.
- name
- String
Namnet på objektet som är resultatet av uttrycket. Kan vara null om det inte finns något behov av att namnge objektet.
- expression
- CodeExpression
Att CodeExpression tolka.
Returer
Ett objekt som är resultatet av tolkningen av expression.
Kommentarer
Det här är en hjälpmetod som härledda klasser kan anropa för att deserialisera ett uttryck. Den deserialiserar -instruktionen genom att tolka och köra det CodeDOM-uttryck som anges av parametern expression och returnerar sedan resultatet. Om ett objekt behöver skapas som ett resultat av det här uttrycket får det namn som anges av parametern name . Namnet kan vara null om det inte finns något behov av att namnge objektet. I följande tabell beskrivs hur specifika uttryck hanteras.
| Expression | Behavior |
|---|---|
| CodeThisReferenceExpression | Det här uttrycket representerar this eller Me. För att hitta objektet som är associerat med det här uttrycket DeserializeExpression letar metoden i kontextstacken efter en RootContext. Det här objektet innehåller grafens rotobjekt och det uttryck som representerar det. Om objektet finns och uttrycket matchar returneras rotobjektet. Ett fel rapporteras om en instans inte kan hittas. |
| CodeFieldReferenceExpression | Om målet för fältreferensen utvärderas till rotobjektet GetInstance används metoden för parametern manager för att hämta objektinstansen baserat på namn. Annars används standardreflektion mot målobjektet för att hitta det begärda fältet. Ett fel rapporteras om fältet inte kan hittas. |
| CodeVariableReferenceExpression | Metoden GetInstance för parametern manager används för att hitta den instans som representerar det angivna variabelnamnet. Ett fel rapporteras om en instans inte kan hittas. |
DeserializeExpression fortsätter att tolka uttryck tills de är helt lösta till ett objekt, eller tills det inte längre kan förenkla uttrycket. I det här fallet DeserializeExpression returneras ett CodeExpression som innehåller det mest förenklade uttrycket. Följande uttryck stöds inte: