ExpressionEditor クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
デザイン時にコントロール プロパティに関連付けられた式を評価したり、式エディター ダイアログ ボックスで使用する式エディター シートをビジュアル デザイン ホストに提供したりするための一連のプロパティとメソッドを定義します。 このクラスは抽象クラスです。
public ref class ExpressionEditor abstract
public abstract class ExpressionEditor
type ExpressionEditor = class
Public MustInherit Class ExpressionEditor
- 継承
-
ExpressionEditor
- 派生
例
次のコード例は、クラスから ExpressionEditor 派生してカスタム式エディターを定義する方法を示しています。
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;
}
}
}
注釈
Visual Studio 2005 などのビジュアル デザイナー ホストは、このクラスをExpressionEditor使用してカスタム式エディター シートをユーザーに提示し、選択した式をデザイン時レンダリング用に評価します。
デザイン時プロパティ グリッドでコントロールの Expressions プロパティを参照すると、ビジュアル デザイナーにダイアログ ボックスが表示され、コントロール プロパティの式が設定されます。 式のプレフィックスの一覧に基づいて式の種類を選択できます。 一覧から式プレフィックスを選択すると、ビジュアル デザイナーは関連付けられた ExpressionEditor オブジェクトを ExpressionEditorSheet 使用して、その種類の式の構文に基づいて式文字列を設定、評価、変換します。 ビジュアル デザイナーは、関連付けられたコントロール プロパティの式を設定し、評価された式の結果を使用して、デザイン サーフェイスにレンダリングされるコントロール プロパティ値を割り当てます。
静的 GetExpressionEditor メソッドは、特定の式プレフィックスまたは式ビルダーに関連付けられている式エディターを取得します。 オブジェクトのプロパティは ExpressionPrefix 、 ExpressionEditor 構成された式プレフィックスを返します。 このメソッドは EvaluateExpression 、入力式の文字列を評価します。 このメソッドは GetExpressionEditorSheet 、式ダイアログ ボックスで ExpressionEditorSheet カスタム式プロパティの入力を求めるために使用される実装を返します。
通常、デザイン時に新しい式の型をサポートするには、一意の式プレフィックスを定義し、カスタム ExpressionBuilder と ExpressionEditor 実装を提供します。 必要に応じて、式ダイアログ ボックスで式を形成するために使用されるプロパティを定義するカスタム ExpressionEditorSheet 実装を提供できます。
式プレフィックスは、カスタム式の型を識別し、式を式ビルダーおよび式エディターに関連付けます。 カスタム式がページで解析されると、式プレフィックスを使用して、関連付けられているExpressionBuilderExpressionEditorクラスのインスタンスが作成されます。 式プレフィックスを式ビルダーおよび式エディターに関連付けるには、カスタム ExpressionBuilder クラスにExpressionEditorAttribute属性とExpressionPrefixAttribute属性を適用し、Web 構成ファイルの要素でexpressionBuilders
式ビルダーの式プレフィックスを構成します。 プレフィックスは必須ではありませんが、強くお勧めします。
注意 (実装者)
カスタム ExpressionEditor クラスを派生させる場合は、次の手順が必要です。
デザイン時に EvaluateExpression(String, Object, Type, IServiceProvider) カスタム式の型を評価するメソッドをオーバーライドします。
必要に応じて、メソッドを GetExpressionEditorSheet(String, IServiceProvider) オーバーライドして、カスタム式を形成するために結合されるプロパティを定義するカスタム クラスを返します。
クラス宣言に属性をExpressionEditorAttributeExpressionBuilder適用して、カスタム式ビルダーを派生式エディター クラスに関連付けます。
たとえば、クラスは ResourceExpressionEditor クラスから ExpressionEditor 派生し、デザイン時にリソース文字列参照を評価してコントロール プロパティに関連付けするための実装を提供します。 クラスは ResourceExpressionBuilder 、式のプレフィックス Resources
と実装に ResourceExpressionEditor 関連付けられています。 このメソッドは GetExpressionEditorSheet(String, IServiceProvider) 、リソース参照式を ResourceExpressionEditorSheet形成する個々のプロパティを定義する 、 を返します。
コンストラクター
ExpressionEditor() |
ExpressionEditor クラスの新しいインスタンスを初期化します。 |
プロパティ
ExpressionPrefix |
式エディター実装でサポートされる式文字列を識別する式プレフィックスを取得します。 |
メソッド
Equals(Object) |
指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。 (継承元 Object) |
EvaluateExpression(String, Object, Type, IServiceProvider) |
式文字列を評価し、コントロール プロパティのデザイン時の値を提供します。 |
GetExpressionEditor(String, IServiceProvider) |
指定した式プレフィックスに関連付けられている ExpressionEditor 実装を返します。 |
GetExpressionEditor(Type, IServiceProvider) |
指定した式ビルダーの型に関連付けられている ExpressionEditor 実装を返します。 |
GetExpressionEditorSheet(String, IServiceProvider) |
現在の式エディターに関連付けられている式エディター シートを返します。 |
GetHashCode() |
既定のハッシュ関数として機能します。 (継承元 Object) |
GetType() |
現在のインスタンスの Type を取得します。 (継承元 Object) |
MemberwiseClone() |
現在の Object の簡易コピーを作成します。 (継承元 Object) |
ToString() |
現在のオブジェクトを表す文字列を返します。 (継承元 Object) |