ExpressionEditor Klass
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.
Definierar en uppsättning egenskaper och metoder för att utvärdera ett uttryck som är associerat med en kontrollegenskap vid designtillfället och för att tillhandahålla ett uttrycksredigerarens blad till den visuella designvärden för användning i dialogrutan uttrycksredigerare. Den här klassen är abstrakt.
public ref class ExpressionEditor abstract
public abstract class ExpressionEditor
type ExpressionEditor = class
Public MustInherit Class ExpressionEditor
- Arv
-
ExpressionEditor
- Härledda
Exempel
Följande kodexempel visar hur du härleder från ExpressionEditor klassen för att definiera en redigerare för anpassade uttryck.
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;
}
}
}
Kommentarer
En värd för visuell designer, till exempel Visual Studio 2005, använder klassen ExpressionEditor för att presentera anpassade uttrycksredigerarens blad för användaren och utvärderar sedan det valda uttrycket för designtidsrendering.
När du bläddrar i Expressions egenskapen för en kontroll i rutnätet egenskaper för designtid, visar den visuella designern en dialogruta för att ange uttryck för en kontrollegenskap. Du kan välja uttryckstyp baserat på en lista med uttrycksprefix. När du väljer ett uttrycksprefix i listan använder den visuella designern de associerade ExpressionEditor objekten och ExpressionEditorSheet objekten för att ange, utvärdera och konvertera uttryckssträngen baserat på syntaxen för den typen av uttryck. Den visuella designern anger uttrycket för den associerade kontrollegenskapen och använder sedan det utvärderade uttrycksresultatet för att tilldela kontrollegenskapsvärden som återges på designytan.
De statiska GetExpressionEditor metoderna hämtar uttrycksredigeraren som är associerad med ett visst uttrycksprefix eller uttrycksverktyget. Egenskapen ExpressionPrefix för ett ExpressionEditor objekt returnerar det konfigurerade uttrycksprefixet. Metoden EvaluateExpression utvärderar en indatauttryckssträng. Metoden GetExpressionEditorSheet returnerar den ExpressionEditorSheet implementering som används för att fråga efter egenskaperna för anpassade uttryck i dialogrutan uttryck.
För att stödja en ny uttryckstyp vid designtillfället definierar du vanligtvis ett unikt uttrycksprefix och tillhandahåller anpassade ExpressionBuilder och ExpressionEditor implementeringar. Du kan också ange en anpassad ExpressionEditorSheet implementering som definierar egenskaper som används för att bilda uttrycket i dialogrutan uttryck.
Uttrycksprefixet identifierar den anpassade uttryckstypen och associerar ett uttryck med uttrycksverktyget och uttrycksredigeraren. När anpassade uttryck parsas på en sida används uttrycksprefixet för att skapa instanser av de associerade ExpressionBuilder och ExpressionEditor klasserna. Om du vill associera ett uttrycksprefix med en uttrycksbyggare och uttrycksredigerare tillämpar du attributen ExpressionEditorAttribute och ExpressionPrefixAttribute på den anpassade ExpressionBuilder klassen och konfigurerar uttrycksprefixet för en uttrycksbyggare i elementet expressionBuilders i webbkonfigurationsfilen. Prefixet krävs inte, men rekommenderas starkt.
Anteckningar till implementerare
Följande steg krävs för att härleda en anpassad ExpressionEditor klass:
Åsidosätt EvaluateExpression(String, Object, Type, IServiceProvider) metoden för att utvärdera den anpassade uttryckstypen vid designtillfället.
Alternativt kan du åsidosätta GetExpressionEditorSheet(String, IServiceProvider) metoden för att returnera en anpassad klass som definierar egenskaper som kombineras för att bilda det anpassade uttrycket.
ExpressionEditorAttribute Använd attributet på klassdeklarationen ExpressionBuilder för att associera den anpassade uttrycksverktyget med klassen härledd uttrycksredigerare.
Klassen härleds till exempel ResourceExpressionEditor från ExpressionEditor klassen och tillhandahåller en implementering för att utvärdera och associera en resurssträngsreferens med en kontrollegenskap vid designtillfället. Klassen ResourceExpressionBuilder är associerad med uttrycksprefixet Resources och implementeringen ResourceExpressionEditor . Metoden GetExpressionEditorSheet(String, IServiceProvider) returnerar en ResourceExpressionEditorSheet, som definierar de enskilda egenskaper som utgör ett resursreferensuttryck.
Konstruktorer
| Name | Description |
|---|---|
| ExpressionEditor() |
Initierar en ny instans av ExpressionEditor klassen. |
Egenskaper
| Name | Description |
|---|---|
| ExpressionPrefix |
Hämtar uttrycksprefixet som identifierar uttryckssträngar som stöds av implementeringen av uttrycksredigeraren. |
Metoder
| Name | Description |
|---|---|
| Equals(Object) |
Avgör om det angivna objektet är lika med det aktuella objektet. (Ärvd från Object) |
| EvaluateExpression(String, Object, Type, IServiceProvider) |
Utvärderar en uttryckssträng och tillhandahåller designtidsvärdet för en kontrollegenskap. |
| GetExpressionEditor(String, IServiceProvider) |
Returnerar en ExpressionEditor implementering som är associerad med det angivna uttrycksprefixet. |
| GetExpressionEditor(Type, IServiceProvider) |
Returnerar en ExpressionEditor implementering som är associerad med den angivna uttrycksverktygets typ. |
| GetExpressionEditorSheet(String, IServiceProvider) |
Returnerar ett uttrycksredigerarens blad som är associerat med den aktuella uttrycksredigeraren. |
| GetHashCode() |
Fungerar som standard-hash-funktion. (Ärvd från Object) |
| GetType() |
Hämtar den aktuella instansen Type . (Ärvd från Object) |
| MemberwiseClone() |
Skapar en ytlig kopia av den aktuella Object. (Ärvd från Object) |
| ToString() |
Returnerar en sträng som representerar det aktuella objektet. (Ärvd från Object) |