ExpressionEditor Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Definuje sadu vlastností a metod pro vyhodnocení výrazu přidruženého k vlastnosti ovládacího prvku v době návrhu a poskytnutí listu editoru výrazů hostiteli vizuálního návrhu pro použití v dialogovém okně editoru výrazů. Tato třída je abstraktní.
public ref class ExpressionEditor abstract
public abstract class ExpressionEditor
type ExpressionEditor = class
Public MustInherit Class ExpressionEditor
- Dědičnost
-
ExpressionEditor
- Odvozené
Příklady
Následující příklad kódu ukazuje, jak odvozovat z ExpressionEditor třídy k definování vlastního editoru výrazů.
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;
}
}
}
Poznámky
Hostitel vizuálního návrháře, například Visual Studio 2005, používá ExpressionEditor třídu k prezentaci listů editoru vlastních výrazů uživateli a následně vyhodnotí vybraný výraz pro vykreslování v době návrhu.
Při procházení vlastnosti ovládacího prvku v mřížce vlastností návrhu Expressions zobrazí návrhář vizuálu dialogové okno pro nastavení výrazů pro vlastnost ovládacího prvku. Typ výrazu můžete vybrat na základě seznamu předpon výrazů. Když vyberete předponu výrazu ze seznamu, návrhář vizuálu použije přidružené ExpressionEditor ExpressionEditorSheet objekty k nastavení, vyhodnocení a převodu řetězce výrazu na základě syntaxe daného typu výrazu. Vizuální návrhář nastaví výraz pro přidruženou vlastnost ovládacího prvku a pak použije výsledek vyhodnoceného výrazu k přiřazení hodnot vlastností ovládacího prvku, které se vykreslují na návrhové ploše.
Statické GetExpressionEditor metody získávají editor výrazů, který je přidružený k určité předponě výrazu nebo tvůrci výrazů. Vlastnost ExpressionPrefix objektu ExpressionEditor vrátí nakonfigurovanou předponu výrazu. Metoda EvaluateExpression vyhodnotí řetězec vstupního výrazu. Metoda GetExpressionEditorSheet vrátí implementaci ExpressionEditorSheet , která se používá k zobrazení výzvy k zadání vlastností vlastního výrazu v dialogovém okně výrazy.
Obvykle pro podporu nového typu výrazu v době návrhu definujete jedinečnou předponu výrazu a poskytujete vlastní ExpressionBuilder a ExpressionEditor implementace. Volitelně můžete zadat vlastní ExpressionEditorSheet implementaci, která definuje vlastnosti, které se používají k vytvoření výrazu v dialogovém okně výrazů.
Předpona výrazu identifikuje typ vlastního výrazu a přidruží výraz k tvůrci výrazů a editoru výrazů. Když se vlastní výrazy analyzují na stránce, použije se předpona výrazu k vytvoření instancí přidružených ExpressionBuilder a ExpressionEditor tříd. Pokud chcete přidružit předponu výrazu k tvůrci výrazů a editoru výrazů, použijte ExpressionEditorAttribute u vlastní ExpressionBuilder třídy a ExpressionPrefixAttribute nakonfigurujte předponu výrazu pro tvůrce výrazů v elementu expressionBuilders
v konfiguračním souboru webu. Předpona není povinná, ale důrazně se doporučuje.
Poznámky pro implementátory
Při odvození vlastní ExpressionEditor třídy jsou vyžadovány následující kroky:
Přepište metodu EvaluateExpression(String, Object, Type, IServiceProvider) pro vyhodnocení vlastního typu výrazu v době návrhu.
Volitelně můžete přepsat metodu GetExpressionEditorSheet(String, IServiceProvider) pro vrácení vlastní třídy, která definuje vlastnosti, které jsou sloučeny do vytvoření vlastního výrazu.
Použijte ExpressionEditorAttribute atribut u ExpressionBuilder deklarace třídy pro přidružení tvůrce vlastních výrazů k odvozené třídě editoru výrazů.
Třída je například ResourceExpressionEditor odvozena od ExpressionEditor třídy a poskytuje implementaci pro vyhodnocení a přidružení odkazu na řetězec prostředku s vlastností ovládacího prvku v době návrhu. Třída ResourceExpressionBuilder je přidružena k předponě Resources
výrazu a implementaci ResourceExpressionEditor . Metoda GetExpressionEditorSheet(String, IServiceProvider) vrátí ResourceExpressionEditorSheethodnotu , která definuje jednotlivé vlastnosti, které tvoří referenční výraz prostředku.
Konstruktory
ExpressionEditor() |
Inicializuje novou instanci ExpressionEditor třídy. |
Vlastnosti
ExpressionPrefix |
Získá předponu výrazu, která identifikuje řetězce výrazů podporované implementací editoru výrazů. |
Metody
Equals(Object) |
Určí, zda se zadaný objekt rovná aktuálnímu objektu. (Zděděno od Object) |
EvaluateExpression(String, Object, Type, IServiceProvider) |
Vyhodnotí řetězec výrazu a poskytuje hodnotu času návrhu pro vlastnost ovládacího prvku. |
GetExpressionEditor(String, IServiceProvider) |
Vrátí implementaci ExpressionEditor přidruženou k zadané předponě výrazu. |
GetExpressionEditor(Type, IServiceProvider) |
Vrátí implementaci ExpressionEditor přidruženou k zadanému typu tvůrce výrazů. |
GetExpressionEditorSheet(String, IServiceProvider) |
Vrátí list editoru výrazů přidružený k aktuálnímu editoru výrazů. |
GetHashCode() |
Slouží jako výchozí funkce hash. (Zděděno od Object) |
GetType() |
Type Získá aktuální instanci. (Zděděno od Object) |
MemberwiseClone() |
Vytvoří použádnou kopii aktuálního souboru Object. (Zděděno od Object) |
ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |