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, který je přidružen 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 odvodit z ExpressionEditor třídy definovat vlastní editor 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.
Když procházíte Expressions vlastnost ovládacího prvku v mřížce vlastností návrhu, vizuální návrhář zobrazí 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ž ze seznamu vyberete předponu výrazu, návrhář vizuálu použije přidružené ExpressionEditor objekty ExpressionEditorSheet 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é jsou vykresleny 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 pro ExpressionEditor objekt 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.
Pro podporu nového typu výrazu v době návrhu obvykle 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ýrazy.
Předpona výrazu identifikuje typ vlastního výrazu a přidruží výraz k tvůrci výrazů a editoru výrazů. Při analýze vlastních výrazů na stránce se k vytvoření instancí přidružených ExpressionBuilder a ExpressionEditor tříd používá předpona výrazu. Pokud chcete přidružit předponu výrazu k tvůrci výrazů a editoru výrazůExpressionBuilder, použijte ExpressionEditorAttribute vlastní třídu a ExpressionPrefixAttribute nakonfigurujte předponu výrazu pro tvůrce výrazů v elementu v expressionBuilders 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í typu vlastního výrazu v době návrhu.
Volitelně přepište metodu GetExpressionEditorSheet(String, IServiceProvider) tak, aby vrátila vlastní třídu, která definuje vlastnosti, které jsou sloučeny pro vytvoření vlastního výrazu.
ExpressionEditorAttribute Použijte atribut deklarace ExpressionBuilder 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 z ExpressionEditor třídy a poskytuje implementaci pro vyhodnocení a přidružení odkazu řetězce prostředku k vlastnosti 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í ResourceExpressionEditorSheet, který definuje jednotlivé vlastnosti, které tvoří referenční výraz prostředku.
Konstruktory
| Name | Description |
|---|---|
| ExpressionEditor() |
Inicializuje novou instanci ExpressionEditor třídy. |
Vlastnosti
| Name | Description |
|---|---|
| ExpressionPrefix |
Získá předponu výrazu, která identifikuje řetězce výrazů podporované implementací editoru výrazů. |
Metody
| Name | Description |
|---|---|
| Equals(Object) |
Určuje, zda je zadaný objekt roven aktuálnímu objektu. (Zděděno od Object) |
| EvaluateExpression(String, Object, Type, IServiceProvider) |
Vyhodnotí řetězec výrazu a poskytne hodnotu času návrhu pro vlastnost ovládacího prvku. |
| GetExpressionEditor(String, IServiceProvider) |
Vrátí implementaci ExpressionEditor přidruženou k předponě zadaného 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() |
Získá Type aktuální instance. (Zděděno od Object) |
| MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Object. (Zděděno od Object) |
| ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |