ExpressionEditor Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Definieert een set eigenschappen en methoden voor het evalueren van een expressie die is gekoppeld aan een besturingselementeigenschap tijdens het ontwerp en om een expressieeditorblad op te geven aan de visualontwerphost voor gebruik in het dialoogvenster expressie-editor. Deze klasse is abstract.
public ref class ExpressionEditor abstract
public abstract class ExpressionEditor
type ExpressionEditor = class
Public MustInherit Class ExpressionEditor
- Overname
-
ExpressionEditor
- Afgeleid
Voorbeelden
In het volgende codevoorbeeld ziet u hoe u kunt afleiden van de ExpressionEditor klasse om een aangepaste expressie-editor te definiëren.
using System;
using System.Collections;
using System.Collections.Specialized;
using System.CodeDom;
using System.Configuration;
using System.Web.UI.Design;
using System.Web.Compilation;
namespace ExpressionEditorSamples.CS
{
[ExpressionPrefix("CustomAppSettings")]
[ExpressionEditor(typeof(ExpressionEditorSamples.CS.CustomAppSettingsEditor))]
public class CustomAppSettingsBuilder : AppSettingsExpressionBuilder
{
// Use the built-in AppSettingsExpressionBuilder class,
// but associate it with a custom expression editor class.
}
public class CustomAppSettingsEditor : System.Web.UI.Design.ExpressionEditor
{
public override object EvaluateExpression(string expression, object parseTimeData, Type propertyType, IServiceProvider serviceProvider)
{
KeyValueConfigurationCollection customSettings = null;
if (serviceProvider != null)
{
IWebApplication webApp = (IWebApplication)serviceProvider.GetService(typeof(IWebApplication));
if (webApp != null)
{
Configuration config = webApp.OpenWebConfiguration(true);
if (config != null)
{
AppSettingsSection settingsSection = config.AppSettings;
if (settingsSection != null)
{
customSettings = settingsSection.Settings;
}
}
}
}
if (customSettings != null)
{
return customSettings[expression];
}
return expression;
}
}
}
Opmerkingen
Een visual designer-host, zoals Visual Studio 2005, gebruikt de klasse ExpressionEditor om aangepaste editorbladen voor expressies aan de gebruiker te presenteren en vervolgens de geselecteerde expressie voor ontwerptijdweergave te evalueren.
Wanneer u door de Expressions eigenschap voor een besturingselement bladert in het raster Met ontwerptijdeigenschappen, wordt in de visualontwerper een dialoogvenster weergegeven om expressies in te stellen voor een besturingselementeigenschap. U kunt het expressietype selecteren op basis van een lijst met expressievoorvoegsels. Wanneer u een expressievoorvoegsel in de lijst selecteert, gebruikt de visuele ontwerper de gekoppelde ExpressionEditor objecten ExpressionEditorSheet om de expressietekenreeks in te stellen, te evalueren en te converteren op basis van de syntaxis voor dat type expressie. De visualontwerper stelt de expressie voor de bijbehorende besturingselementeigenschap in en gebruikt vervolgens het resultaat van de geëvalueerde expressie om waarden voor besturingseigenschappen toe te wijzen die op het ontwerpoppervlak worden weergegeven.
De statische GetExpressionEditor methoden krijgen de expressie-editor die is gekoppeld aan een bepaald expressievoorvoegsel of opbouwfunctie voor expressies. De ExpressionPrefix eigenschap voor een ExpressionEditor object retourneert het geconfigureerde expressievoorvoegsel. De EvaluateExpression methode evalueert een tekenreeks voor invoerexpressies. De GetExpressionEditorSheet methode retourneert de ExpressionEditorSheet implementatie die wordt gebruikt om de eigenschappen van de aangepaste expressie in het dialoogvenster Expressies te vragen.
Normaal gesproken definieert u een uniek expressievoorvoegsel om een nieuw expressietype te ondersteunen en aangepaste ExpressionBuilder en ExpressionEditor implementaties te bieden. U kunt desgewenst een aangepaste ExpressionEditorSheet implementatie opgeven waarmee eigenschappen worden gedefinieerd die worden gebruikt om de expressie te vormen in het dialoogvenster Expressies.
Het expressievoorvoegsel identificeert het aangepaste expressietype en koppelt een expressie aan de opbouwfunctie voor expressies en expressie-editor. Wanneer aangepaste expressies op een pagina worden geparseerd, wordt het expressievoorvoegsel gebruikt om exemplaren van de gekoppelde ExpressionBuilder en ExpressionEditor klassen te maken. Als u een expressievoorvoegsel wilt koppelen aan een opbouwfunctie voor expressies en expressie-editor, past u de ExpressionEditorAttribute en ExpressionPrefixAttribute kenmerken toe op de aangepaste ExpressionBuilder klasse en configureert u het expressievoorvoegsel voor een opbouwfunctie voor expressies in het element in het expressionBuilders webconfiguratiebestand. Het voorvoegsel is niet vereist, maar wordt ten zeerste aanbevolen.
Notities voor uitvoerders
De volgende stappen zijn vereist bij het afleiden van een aangepaste ExpressionEditor klasse:
Overschrijf de methode om het aangepaste expressietype tijdens het EvaluateExpression(String, Object, Type, IServiceProvider) ontwerp te evalueren.
U kunt desgewenst de GetExpressionEditorSheet(String, IServiceProvider) methode overschrijven om een aangepaste klasse te retourneren die eigenschappen definieert die worden gecombineerd om de aangepaste expressie te vormen.
Pas het ExpressionEditorAttribute kenmerk toe op de ExpressionBuilder klassedeclaratie om de opbouwfunctie voor aangepaste expressies te koppelen aan de klasse editor voor afgeleide expressies.
De ResourceExpressionEditor klasse is bijvoorbeeld afgeleid van de ExpressionEditor klasse en biedt een implementatie voor het evalueren en koppelen van een resourcetekenreeksreferentie aan een besturingselementeigenschap tijdens het ontwerp. De ResourceExpressionBuilder klasse is gekoppeld aan het expressievoorvoegsel Resources en de ResourceExpressionEditor implementatie. De GetExpressionEditorSheet(String, IServiceProvider) methode retourneert een ResourceExpressionEditorSheet, waarmee de afzonderlijke eigenschappen worden gedefinieerd die een bronreferentieexpressie vormen.
Constructors
| Name | Description |
|---|---|
| ExpressionEditor() |
Initialiseert een nieuw exemplaar van de ExpressionEditor klasse. |
Eigenschappen
| Name | Description |
|---|---|
| ExpressionPrefix |
Hiermee haalt u het expressievoorvoegsel op dat expressietekenreeksen identificeert die worden ondersteund door de implementatie van de expressie-editor. |
Methoden
| Name | Description |
|---|---|
| Equals(Object) |
Bepaalt of het opgegeven object gelijk is aan het huidige object. (Overgenomen van Object) |
| EvaluateExpression(String, Object, Type, IServiceProvider) |
Evalueert een expressietekenreeks en levert de ontwerptijdwaarde voor een besturingselementeigenschap. |
| GetExpressionEditor(String, IServiceProvider) |
Retourneert een ExpressionEditor implementatie die is gekoppeld aan het opgegeven expressievoorvoegsel. |
| GetExpressionEditor(Type, IServiceProvider) |
Retourneert een ExpressionEditor implementatie die is gekoppeld aan het opgegeven type opbouwfunctie voor expressies. |
| GetExpressionEditorSheet(String, IServiceProvider) |
Retourneert een editorblad voor expressies dat is gekoppeld aan de huidige expressie-editor. |
| GetHashCode() |
Fungeert als de standaardhashfunctie. (Overgenomen van Object) |
| GetType() |
Hiermee haalt u de Type huidige instantie op. (Overgenomen van Object) |
| MemberwiseClone() |
Hiermee maakt u een ondiepe kopie van de huidige Object. (Overgenomen van Object) |
| ToString() |
Retourneert een tekenreeks die het huidige object vertegenwoordigt. (Overgenomen van Object) |