ExpressionEditor Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Definiuje zestaw właściwości i metod do obliczania wyrażenia skojarzonego z właściwością kontrolki w czasie projektowania oraz w celu udostępnienia arkusza edytora wyrażeń hostowi projektu wizualnego do użycia w oknie dialogowym edytora wyrażeń. Ta klasa jest abstrakcyjna.
public ref class ExpressionEditor abstract
public abstract class ExpressionEditor
type ExpressionEditor = class
Public MustInherit Class ExpressionEditor
- Dziedziczenie
-
ExpressionEditor
- Pochodne
Przykłady
Poniższy przykład kodu pokazuje, jak pochodzić z klasy w ExpressionEditor celu zdefiniowania edytora wyrażeń niestandardowych.
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;
}
}
}
Uwagi
Host projektanta wizualizacji, taki jak Visual Studio 2005, używa ExpressionEditor klasy do prezentowania niestandardowych arkuszy edytora wyrażeń użytkownikowi, a następnie oceny wybranego wyrażenia na potrzeby renderowania w czasie projektowania.
Podczas przeglądania Expressions właściwości kontrolki w siatce właściwości czasu projektowania projektant wizualizacji wyświetla okno dialogowe, aby ustawić wyrażenia dla właściwości kontrolki. Możesz wybrać typ wyrażenia na podstawie listy prefiksów wyrażeń. Po wybraniu prefiksu wyrażenia z listy projektant wizualizacji używa skojarzonych obiektów ExpressionEditor i ExpressionEditorSheet do ustawiania, oceniania i konwertowania ciągu wyrażenia na podstawie składni tego typu wyrażenia. Projektant wizualizacji ustawia wyrażenie dla skojarzonej właściwości kontrolki, a następnie używa wyniku obliczonego wyrażenia do przypisywania wartości właściwości kontrolki renderowanych na powierzchni projektowej.
Metody statyczne GetExpressionEditor pobierają edytor wyrażeń skojarzony z określonym prefiksem wyrażenia lub konstruktorem wyrażeń. Właściwość ExpressionPrefix obiektu ExpressionEditor zwraca skonfigurowany prefiks wyrażenia. Metoda EvaluateExpression oblicza ciąg wyrażenia wejściowego. Metoda GetExpressionEditorSheet zwraca implementację ExpressionEditorSheet , która jest używana do monitowania o właściwości wyrażenia niestandardowego w oknie dialogowym wyrażeń.
Zazwyczaj w celu obsługi nowego typu wyrażenia w czasie projektowania należy zdefiniować unikatowy prefiks wyrażenia i zapewnić niestandardowe ExpressionBuilder i ExpressionEditor implementacje. Opcjonalnie możesz podać niestandardową ExpressionEditorSheet implementację, która definiuje właściwości używane do tworzenia wyrażenia w oknie dialogowym wyrażeń.
Prefiks wyrażenia identyfikuje typ wyrażenia niestandardowego i kojarzy wyrażenie z konstruktorem wyrażeń i edytorem wyrażeń. Gdy wyrażenia niestandardowe są analizowane na stronie, prefiks wyrażenia jest używany do tworzenia wystąpień skojarzonych ExpressionBuilder klas i ExpressionEditor . Aby skojarzyć prefiks wyrażenia z konstruktorem wyrażeń i edytorem wyrażeń, zastosuj ExpressionEditorAttribute atrybuty i ExpressionPrefixAttribute do klasy niestandardowej ExpressionBuilder i skonfiguruj prefiks wyrażenia dla konstruktora wyrażeń w expressionBuilders
elemecie w pliku konfiguracji sieci Web. Prefiks nie jest wymagany, ale zdecydowanie zalecany.
Uwagi dotyczące implementowania
W przypadku wyprowadzania klasy niestandardowej ExpressionEditor wymagane są następujące kroki:
- Przesłoń metodę EvaluateExpression(String, Object, Type, IServiceProvider) , aby ocenić typ wyrażenia niestandardowego w czasie projektowania.
— Opcjonalnie zastąpij GetExpressionEditorSheet(String, IServiceProvider) metodę, aby zwrócić klasę niestandardową, która definiuje właściwości połączone w celu utworzenia wyrażenia niestandardowego.
— Zastosuj atrybut w ExpressionEditorAttribute ExpressionBuilder deklaracji klasy, aby skojarzyć konstruktora wyrażeń niestandardowych z klasą edytora wyrażeń pochodnych.
Na przykład ResourceExpressionEditor klasa pochodzi z ExpressionEditor klasy i udostępnia implementację do obliczania i kojarzenia odwołania do ciągu zasobu z właściwością kontrolki w czasie projektowania. Klasa ResourceExpressionBuilder jest skojarzona z prefiksem Resources
wyrażenia i implementacją ResourceExpressionEditor . Metoda GetExpressionEditorSheet(String, IServiceProvider) zwraca obiekt ResourceExpressionEditorSheet, który definiuje poszczególne właściwości, które tworzą wyrażenie odwołania do zasobu.
Konstruktory
ExpressionEditor() |
Inicjuje nowe wystąpienie klasy ExpressionEditor. |
Właściwości
ExpressionPrefix |
Pobiera prefiks wyrażenia, który identyfikuje ciągi wyrażeń obsługiwane przez implementację edytora wyrażeń. |
Metody
Equals(Object) |
Określa, czy dany obiekt jest taki sam, jak bieżący obiekt. (Odziedziczone po Object) |
EvaluateExpression(String, Object, Type, IServiceProvider) |
Oblicza ciąg wyrażenia i udostępnia wartość czasu projektowania właściwości kontrolki. |
GetExpressionEditor(String, IServiceProvider) |
Zwraca implementację ExpressionEditor skojarzona z prefiksem określonego wyrażenia. |
GetExpressionEditor(Type, IServiceProvider) |
Zwraca implementację ExpressionEditor skojarzona z określonym typem konstruktora wyrażeń. |
GetExpressionEditorSheet(String, IServiceProvider) |
Zwraca arkusz edytora wyrażeń skojarzony z bieżącym edytorem wyrażeń. |
GetHashCode() |
Służy jako domyślna funkcja skrótu. (Odziedziczone po Object) |
GetType() |
Type Pobiera wartość bieżącego wystąpienia. (Odziedziczone po Object) |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |