Partager via


ExpressionEditor Classe

Définition

Définit un ensemble de propriétés et de méthodes permettant d’évaluer une expression associée à une propriété de contrôle au moment du design et de fournir une feuille d’éditeur d’expressions à l’hôte de conception visuelle à utiliser dans la boîte de dialogue éditeur d’expression. Cette classe est abstraite.

public ref class ExpressionEditor abstract
public abstract class ExpressionEditor
type ExpressionEditor = class
Public MustInherit Class ExpressionEditor
Héritage
ExpressionEditor
Dérivé

Exemples

L’exemple de code suivant montre comment dériver de la ExpressionEditor classe pour définir un éditeur d’expression personnalisée.

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

Remarques

Un hôte de concepteur visuel, tel que Visual Studio 2005, utilise la ExpressionEditor classe pour présenter des feuilles d’éditeur d’expressions personnalisées à l’utilisateur, puis évaluer l’expression sélectionnée pour le rendu au moment du design.

Lorsque vous parcourez la Expressions propriété d’un contrôle dans la grille Propriétés au moment du design, le concepteur visuel affiche une boîte de dialogue pour définir des expressions pour une propriété de contrôle. Vous pouvez sélectionner le type d’expression en fonction d’une liste de préfixes d’expression. Lorsque vous sélectionnez un préfixe d’expression dans la liste, le concepteur visuel utilise les objets associés ExpressionEditor pour ExpressionEditorSheet définir, évaluer et convertir la chaîne d’expression en fonction de la syntaxe de ce type d’expression. Le concepteur visuel définit l’expression de la propriété de contrôle associée, puis utilise le résultat de l’expression évaluée pour affecter des valeurs de propriété de contrôle qui sont affichées sur l’aire de conception.

Les méthodes statiques GetExpressionEditor obtiennent l’éditeur d’expression associé à un préfixe d’expression ou un générateur d’expressions particulier. La ExpressionPrefix propriété d’un ExpressionEditor objet retourne le préfixe d’expression configuré. La EvaluateExpression méthode évalue une chaîne d’expression d’entrée. La GetExpressionEditorSheet méthode retourne l’implémentation ExpressionEditorSheet utilisée pour demander les propriétés d’expression personnalisée dans la boîte de dialogue Expressions.

En règle générale, pour prendre en charge un nouveau type d’expression au moment du design, vous définissez un préfixe d’expression unique et fournissez des implémentations et ExpressionEditor personnaliséesExpressionBuilder. Si vous le souhaitez, vous pouvez fournir une implémentation personnalisée ExpressionEditorSheet qui définit les propriétés utilisées pour former l’expression dans la boîte de dialogue expressions.

Le préfixe d’expression identifie le type d’expression personnalisé et associe une expression au générateur d’expressions et à l’éditeur d’expressions. Lorsque des expressions personnalisées sont analysées dans une page, le préfixe d’expression est utilisé pour créer des instances des classes et ExpressionEditor des classes associéesExpressionBuilder. Pour associer un préfixe d’expression à un générateur d’expressions et un éditeur d’expressions, appliquez les attributs et les ExpressionEditorAttribute attributs à la classe personnalisée ExpressionBuilder et configurez le préfixe d’expression pour un générateur d’expressions dans l’élément expressionBuilders du fichier de configuration ExpressionPrefixAttribute Web. Le préfixe n’est pas obligatoire, mais fortement recommandé.

Notes pour les responsables de l’implémentation

Les étapes suivantes sont requises pour dériver une classe personnalisée ExpressionEditor :

Par exemple, la ResourceExpressionEditor classe dérive de la ExpressionEditor classe et fournit une implémentation permettant d’évaluer et d’associer une référence de chaîne de ressource à une propriété de contrôle au moment du design. La ResourceExpressionBuilder classe est associée au préfixe Resources d’expression et à l’implémentation ResourceExpressionEditor . La GetExpressionEditorSheet(String, IServiceProvider) méthode retourne un ResourceExpressionEditorSheet, qui définit les propriétés individuelles qui forment une expression de référence de ressource.

Constructeurs

Nom Description
ExpressionEditor()

Initialise une nouvelle instance de la classe ExpressionEditor.

Propriétés

Nom Description
ExpressionPrefix

Obtient le préfixe d’expression qui identifie les chaînes d’expression prises en charge par l’implémentation de l’éditeur d’expression.

Méthodes

Nom Description
Equals(Object)

Détermine si l’objet spécifié est égal à l’objet actuel.

(Hérité de Object)
EvaluateExpression(String, Object, Type, IServiceProvider)

Évalue une chaîne d’expression et fournit la valeur au moment du design pour une propriété de contrôle.

GetExpressionEditor(String, IServiceProvider)

Retourne une ExpressionEditor implémentation associée au préfixe d’expression spécifié.

GetExpressionEditor(Type, IServiceProvider)

Retourne une ExpressionEditor implémentation associée au type de générateur d’expressions spécifié.

GetExpressionEditorSheet(String, IServiceProvider)

Retourne une feuille d’éditeur d’expression associée à l’éditeur d’expression actuel.

GetHashCode()

Sert de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient la Type de l’instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Objectactuel.

(Hérité de Object)
ToString()

Retourne une chaîne qui représente l’objet actuel.

(Hérité de Object)

S’applique à

Voir aussi