다음을 통해 공유


ExpressionEditor 클래스

정의

디자인 타임에 컨트롤 속성과 연결된 식을 계산하고 식 편집기 대화 상자에서 사용할 식 편집기 시트를 비주얼 디자인 호스트에 제공하는 데 사용할 속성과 메서드의 집합을 정의합니다. 이 클래스는 추상 클래스입니다.

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 비주얼 디자이너 컨트롤 디자인 타임 속성 표에서 속성을 컨트롤 속성에 대 한 식 설정 대화 상자를 표시 합니다. 식 접두사 목록을 기반으로 식 형식을 선택할 수 있습니다. 목록에서 식 접두사를 선택 하는 경우 비주얼 디자이너를 사용 하 여 연결 된 ExpressionEditorExpressionEditorSheet 개체를 설정 하려면 평가 하 고 해당 형식의 식에 대 한 구문을 기반으로 하는 식 문자열을 변환 합니다. 연결 된 컨트롤 속성에 대 한 식을 설정 하 고 계산된 된 식 결과 사용 하 여 컨트롤 디자인 화면에 렌더링 되는 속성 값을 할당 하는 비주얼 디자이너.

정적 GetExpressionEditor 메서드는 특정 식 접두사 또는 식 작성기 연관 된 식 편집기를 가져옵니다. 합니다 ExpressionPrefix 속성에 대 한는 ExpressionEditor 개체 구성 된 식 접두사를 반환 합니다. EvaluateExpression 메서드는 입력된 식 문자열을 계산 합니다. GetExpressionEditorSheet 메서드가 반환 되는 ExpressionEditorSheet 식 대화 상자에서 사용자 지정 식 속성에 대 한 메시지를 표시 하는 구현 합니다.

일반적으로 새로운 식 형식을 디자인 타임 지원, 있습니다 고유한 식 접두사를 정의 하 고 제공 사용자 지정 ExpressionBuilderExpressionEditor 구현 합니다. 필요에 따라 사용자 지정을 제공할 수 있습니다 ExpressionEditorSheet 식 대화 상자에서 식을 구성 하는 데 사용 되는 속성을 정의 하는 구현 합니다.

사용자 지정 식 유형을 확인 하 고 식을 식 작성기와 식 편집기를 사용 하 여 연결 하는 식 접두사입니다. 식 접두사는 연결 된 인스턴스를 만드는 데 페이지에서 사용자 지정 식을 구문 분석 되 면 ExpressionBuilderExpressionEditor 클래스입니다. 식 접두사 식 작성기와 식 편집기에 연결 하려면 적용 된 ExpressionEditorAttributeExpressionPrefixAttribute 사용자 지정 특성 ExpressionBuilder 클래스 및에서 식 작성기에 대 한 식 접두사를 구성 합니다 expressionBuilders 웹 구성 파일의 요소입니다. 접두사는 필수 이지만 좋습니다.

구현자 참고

다음 단계는 사용자 지정을 파생 시키는 데 필요한 ExpressionEditor 클래스: -재정의 된 EvaluateExpression(String, Object, Type, IServiceProvider) 디자인 타임에 사용자 지정 식 유형을 평가 하는 방법입니다.

-선택적으로 재정의 된 GetExpressionEditorSheet(String, IServiceProvider) 결합 되어 사용자 지정 식을 구성 하는 속성을 정의 하는 사용자 지정 클래스를 반환 하는 방법입니다.

적용 합니다 ExpressionEditorAttribute 특성을 ExpressionBuilder 클래스 파생 된 식 편집기 클래스를 사용 하 여 사용자 지정 식 작성기를 연결 하는 선언 합니다.

예를 들어 합니다 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)

적용 대상

추가 정보