Bagikan melalui


ExpressionEditor Kelas

Definisi

Menentukan sekumpulan properti dan metode untuk mengevaluasi ekspresi yang terkait dengan properti kontrol pada waktu desain dan untuk menyediakan lembar editor ekspresi ke host desain visual untuk digunakan dalam kotak dialog editor ekspresi. Kelas ini abstrak.

public ref class ExpressionEditor abstract
public abstract class ExpressionEditor
type ExpressionEditor = class
Public MustInherit Class ExpressionEditor
Warisan
ExpressionEditor
Turunan

Contoh

Contoh kode berikut menunjukkan cara memperoleh dari ExpressionEditor kelas untuk menentukan editor ekspresi kustom.

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

Keterangan

Host perancang visual, seperti Visual Studio 2005, menggunakan ExpressionEditor kelas untuk menyajikan lembar editor ekspresi kustom kepada pengguna, lalu mengevaluasi ekspresi yang dipilih untuk penyajian waktu desain.

Saat Anda menelusuri Expressions properti untuk kontrol di kisi Properti waktu desain, perancang visual menampilkan kotak dialog untuk mengatur ekspresi properti kontrol. Anda dapat memilih jenis ekspresi berdasarkan daftar awalan ekspresi. Saat Anda memilih awalan ekspresi dari daftar, perancang visual menggunakan objek dan ExpressionEditorSheet terkait ExpressionEditor untuk mengatur, mengevaluasi, dan mengonversi string ekspresi berdasarkan sintaks untuk jenis ekspresi tersebut. Perancang visual mengatur ekspresi untuk properti kontrol terkait, lalu menggunakan hasil ekspresi yang dievaluasi untuk menetapkan nilai properti kontrol yang dirender pada permukaan desain.

Metode statis GetExpressionEditor mendapatkan editor ekspresi yang terkait dengan awalan ekspresi atau penyusun ekspresi tertentu. Properti ExpressionPrefix untuk objek mengembalikan awalan ekspresi yang ExpressionEditor dikonfigurasi. Metode EvaluateExpression mengevaluasi string ekspresi input. Metode GetExpressionEditorSheet mengembalikan ExpressionEditorSheet implementasi yang digunakan untuk meminta properti ekspresi kustom dalam kotak dialog ekspresi.

Biasanya, untuk mendukung jenis ekspresi baru pada waktu desain, Anda menentukan awalan ekspresi unik dan menyediakan kustom ExpressionBuilder dan ExpressionEditor implementasi. Secara opsional, Anda dapat menyediakan implementasi kustom ExpressionEditorSheet yang menentukan properti yang digunakan untuk membentuk ekspresi dalam kotak dialog ekspresi.

Awalan ekspresi mengidentifikasi jenis ekspresi kustom dan mengaitkan ekspresi dengan penyusun ekspresi dan editor ekspresi. Saat ekspresi kustom diurai dalam halaman, awalan ekspresi digunakan untuk membuat instans kelas dan ExpressionEditor terkaitExpressionBuilder. Untuk mengaitkan awalan ekspresi dengan penyusun ekspresi dan editor ekspresi, terapkan ExpressionEditorAttribute atribut dan ExpressionPrefixAttribute ke kelas kustom ExpressionBuilder dan konfigurasikan awalan ekspresi untuk penyusun ekspresi dalam expressionBuilders elemen dalam file konfigurasi Web. Awalan tidak diperlukan, tetapi sangat disarankan.

Catatan Bagi Implementer

Langkah-langkah berikut diperlukan dalam mendapatkan kelas kustom ExpressionEditor :

Misalnya, ResourceExpressionEditor kelas berasal dari ExpressionEditor kelas dan menyediakan implementasi untuk mengevaluasi dan mengaitkan referensi string sumber daya dengan properti kontrol pada waktu desain. Kelas ResourceExpressionBuilder dikaitkan dengan awalan Resources ekspresi dan implementasinya ResourceExpressionEditor . Metode GetExpressionEditorSheet(String, IServiceProvider) mengembalikan ResourceExpressionEditorSheet, yang menentukan properti individual yang membentuk ekspresi referensi sumber daya.

Konstruktor

Nama Deskripsi
ExpressionEditor()

Menginisialisasi instans baru dari kelas ExpressionEditor.

Properti

Nama Deskripsi
ExpressionPrefix

Mendapatkan awalan ekspresi yang mengidentifikasi string ekspresi yang didukung oleh implementasi editor ekspresi.

Metode

Nama Deskripsi
Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
EvaluateExpression(String, Object, Type, IServiceProvider)

Mengevaluasi string ekspresi dan menyediakan nilai waktu desain untuk properti kontrol.

GetExpressionEditor(String, IServiceProvider)

Mengembalikan ExpressionEditor implementasi yang terkait dengan awalan ekspresi yang ditentukan.

GetExpressionEditor(Type, IServiceProvider)

Mengembalikan ExpressionEditor implementasi yang terkait dengan jenis penyusun ekspresi yang ditentukan.

GetExpressionEditorSheet(String, IServiceProvider)

Mengembalikan lembar editor ekspresi yang terkait dengan editor ekspresi saat ini.

GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetType()

Mendapatkan Type instans saat ini.

(Diperoleh dari Object)
MemberwiseClone()

Membuat salinan dangkal dari Objectsaat ini.

(Diperoleh dari Object)
ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)

Berlaku untuk

Lihat juga