ExpressionEditor Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Definiert eine Reihe von Eigenschaften und Methoden zum Auswerten eines Ausdrucks, der zur Entwurfszeit einer Steuerelementeigenschaft zugeordnet ist, und um dem visuellen Entwurfshost ein Ausdrucks-Editor-Blatt zur Verwendung im Dialogfeld "Ausdrucks-Editor" 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 Visual Designer-Host, z. B. Visual Studio 2005, verwendet die ExpressionEditor Klasse, um dem Benutzer benutzerdefinierte Ausdrucks-Editor-Blätter zu präsentieren und dann den ausgewählten Ausdruck für das Entwurfszeitrendering auszuwerten.
Wenn Sie die Expressions Eigenschaft für ein Steuerelement im Entwurfszeiteigenschaftenraster durchsuchen, zeigt der visuelle Designer ein Dialogfeld an, in dem Ausdrücke für eine Steuerelementeigenschaft festgelegt werden. Sie können den Ausdruckstyp basierend auf einer Liste von Ausdruckspräfixen auswählen. Wenn Sie ein Ausdruckspräfix aus der Liste auswählen, verwendet der visuelle Designer die zugeordneten ExpressionEditor Objekte ExpressionEditorSheet , 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 Eingabeausdruckszeichenfolge aus. Die GetExpressionEditorSheet Methode gibt die ExpressionEditorSheet Implementierung zurück, die zum Anfordern der benutzerdefinierten Ausdruckseigenschaften im Dialogfeld "Ausdrücke" verwendet wird.
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 ordnet einen Ausdruck dem Ausdrucks-Generator und dem Ausdrucks-Editor zu. Wenn benutzerdefinierte Ausdrücke auf einer Seite analysiert werden, wird das Ausdruckspräfix verwendet, um Instanzen der zugeordneten ExpressionBuilder und ExpressionEditor Klassen zu erstellen. Um ein Ausdruckspräfix einem Ausdrucks-Generator und einem Ausdrucks-Editor zuzuordnen, wenden Sie die ExpressionEditorAttribute Attribute und ExpressionPrefixAttribute Attribute auf die benutzerdefinierte ExpressionBuilder Klasse an, und konfigurieren Sie das Ausdruckspräfix für einen Ausdrucks-Generator im Element in expressionBuilders der Webkonfigurationsdatei. Das Präfix ist nicht erforderlich, wird jedoch 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.
Setzen Sie optional die GetExpressionEditorSheet(String, IServiceProvider) Methode außer Kraft, um eine benutzerdefinierte Klasse zurückzugeben, die 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 wird beispielsweise ResourceExpressionEditor von der ExpressionEditor Klasse abgeleitet und stellt eine Implementierung zum Auswerten und Zuordnen eines Ressourcenzeichenfolgenverweises 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
| Name | Beschreibung |
|---|---|
| ExpressionEditor() |
Initialisiert eine neue Instanz der ExpressionEditor-Klasse. |
Eigenschaften
| Name | Beschreibung |
|---|---|
| ExpressionPrefix |
Ruft das Ausdruckspräfix ab, das Ausdruckszeichenfolgen identifiziert, die von der Implementierung des Ausdrucks-Editors unterstützt werden. |
Methoden
| Name | Beschreibung |
|---|---|
| Equals(Object) |
Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht. (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 Ausdrucks-Generator-Typ zugeordnet ist. |
| GetExpressionEditorSheet(String, IServiceProvider) |
Gibt ein Ausdrucks-Editor-Blatt zurück, das dem aktuellen Ausdrucks-Editor zugeordnet ist. |
| GetHashCode() |
Dient als Standardhashfunktion. (Geerbt von Object) |
| GetType() |
Ruft die Type der aktuellen Instanz ab. (Geerbt von Object) |
| MemberwiseClone() |
Erstellt eine flache Kopie der aktuellen Object. (Geerbt von Object) |
| ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |