ExpressionEditor Klasse

Definition

Definiert eine Gruppe von Eigenschaften und Methoden, um einen Ausdruck auszuwerten, der zur Entwurfszeit einer Steuerelementeigenschaft zugeordnet ist, und um ein Ausdrucks-Editorblatt für den visuellen Entwurfshost für die Verwendung im Dialogfeld des Ausdrucks-Editors bereitzustellen. Diese Klasse ist abstrakt.

public ref class ExpressionEditor abstract
public abstract class ExpressionEditor
type ExpressionEditor = class
Public MustInherit Class ExpressionEditor
Vererbung
ExpressionEditor
Abgeleitet

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie Sie von der ExpressionEditor Klasse abgeleitet werden, um einen benutzerdefinierten Ausdrucks-Editor zu definieren.

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;
        }
    }
}

Hinweise

Ein visueller Designerhost, z. B. Visual Studio 2005, verwendet die ExpressionEditor Klasse, um benutzerdefinierte Ausdrucks-Editor-Blätter für den Benutzer darzustellen und dann den ausgewählten Ausdruck für das Entwurfszeitrendering auszuwerten.

Wenn Sie die Expressions Eigenschaft für ein Steuerelement im Raster der Entwurfszeiteigenschaften durchsuchen, zeigt der visuelle Designer ein Dialogfeld an, um Ausdrücke für eine Steuerelementeigenschaft festzulegen. Sie können den Ausdruckstyp basierend auf einer Liste der Ausdruckspräfixe auswählen. Wenn Sie ein Ausdruckspräfix aus der Liste auswählen, verwendet der visuelle Designer die zugeordneten ExpressionEditor und ExpressionEditorSheet Objekte, um die Ausdruckszeichenfolge basierend auf der Syntax für diesen Ausdruckstyp festzulegen, auszuwerten und zu konvertieren. Der visuelle Designer legt den Ausdruck für die zugeordnete Steuerelementeigenschaft fest und verwendet dann das ausgewertete Ausdrucksergebnis, um Steuerelementeigenschaftenwerte zuzuweisen, die auf der Entwurfsoberfläche gerendert werden.

Die statischen GetExpressionEditor Methoden rufen den Ausdrucks-Editor ab, der einem bestimmten Ausdruckspräfix oder Ausdrucks-Generator zugeordnet ist. Die ExpressionPrefix Eigenschaft für ein ExpressionEditor Objekt gibt das konfigurierte Ausdruckspräfix zurück. Die EvaluateExpression Methode wertet eine Eingabeausdruckzeichenfolge aus. Die GetExpressionEditorSheet Methode gibt die Implementierung zurück, die ExpressionEditorSheet verwendet wird, um die Eigenschaften des benutzerdefinierten Ausdrucks im Dialogfeld "Ausdrücke" einzufordern.

Um einen neuen Ausdruckstyp zur Entwurfszeit zu unterstützen, definieren Sie ein eindeutiges Ausdruckspräfix und stellen benutzerdefinierte ExpressionBuilder und ExpressionEditor Implementierungen bereit. Optional können Sie eine benutzerdefinierte ExpressionEditorSheet Implementierung bereitstellen, die Eigenschaften definiert, die zum Bilden des Ausdrucks im Dialogfeld "Ausdrücke" verwendet werden.

Das Ausdruckspräfix identifiziert den benutzerdefinierten Ausdruckstyp und verknüpft einen Ausdruck mit dem Ausdrucks-Generator und dem Ausdrucks-Editor. Wenn benutzerdefinierte Ausdrücke in einer Seite analysiert werden, wird das Ausdruckspräfix verwendet, um Instanzen der zugeordneten ExpressionBuilder und ExpressionEditor Klassen zu erstellen. Wenn Sie ein Ausdruckspräfix einem Ausdrucks-Generator und einem Ausdrucks-Editor zuordnen möchten, wenden Sie die ExpressionEditorAttribute Attribute ExpressionPrefixAttribute und Attribute auf die benutzerdefinierte ExpressionBuilder Klasse an, und konfigurieren Sie das Ausdruckspräfix für einen Ausdrucks-Generator im Element in der expressionBuilders Webkonfigurationsdatei. Das Präfix ist nicht erforderlich, aber dringend empfohlen.

Hinweise für Ausführende

Die folgenden Schritte sind erforderlich, um eine benutzerdefinierte ExpressionEditor Klasse abzuleiten: – Überschreiben Sie die EvaluateExpression(String, Object, Type, IServiceProvider) Methode, um den benutzerdefinierten Ausdruckstyp zur Entwurfszeit auszuwerten.

– Optional können Sie die Methode außer Kraft setzen, um eine benutzerdefinierte Klasse zurückzugeben, die GetExpressionEditorSheet(String, IServiceProvider) Eigenschaften definiert, die kombiniert werden, um den benutzerdefinierten Ausdruck zu bilden.

– Wenden Sie das ExpressionEditorAttribute Attribut für die ExpressionBuilder Klassendeklaration an, um den benutzerdefinierten Ausdrucks-Generator der abgeleiteten Ausdrucks-Editor-Klasse zuzuordnen.

Die Klasse leitet sich beispielsweise ResourceExpressionEditor von der ExpressionEditor Klasse ab und stellt eine Implementierung zum Auswerten und Zuordnen eines Ressourcenzeichenfolgenverweiss zu einer Steuerelementeigenschaft zur Entwurfszeit bereit. Die ResourceExpressionBuilder Klasse ist dem Ausdruckspräfix Resources und der ResourceExpressionEditor Implementierung zugeordnet. Die GetExpressionEditorSheet(String, IServiceProvider) Methode gibt einen ResourceExpressionEditorSheet, der die einzelnen Eigenschaften definiert, die einen Ressourcenverweisausdruck bilden.

Konstruktoren

ExpressionEditor()

Initialisiert eine neue Instanz der ExpressionEditor-Klasse.

Eigenschaften

ExpressionPrefix

Ruft das Ausdruckspräfix ab, das die Ausdruckszeichenfolgen kennzeichnet, die von der Implementierung des Ausdrucks-Editors unterstützt werden.

Methoden

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
EvaluateExpression(String, Object, Type, IServiceProvider)

Wertet eine Ausdruckszeichenfolge aus und stellt den Entwurfszeitwert für eine Steuerelementeigenschaft bereit.

GetExpressionEditor(String, IServiceProvider)

Gibt eine ExpressionEditor-Implementierung zurück, die dem angegebenen Ausdruckspräfix zugeordnet ist.

GetExpressionEditor(Type, IServiceProvider)

Gibt eine ExpressionEditor-Implementierung zurück, die dem angegebenen Typ des Ausdrucks-Generators zugeordnet ist.

GetExpressionEditorSheet(String, IServiceProvider)

Gibt ein Ausdrucks-Editorblatt zurück, das dem aktuellen Ausdrucks-Editor zugeordnet ist.

GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Gilt für

Siehe auch