ExpressionEditor Klass

Definition

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:

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)

Gäller för

Se även