ExpressionBuilder.GetCodeExpression 메서드

정의

파생 클래스에서 재정의되는 경우 페이지 실행 중에 계산된 식을 가져오는 데 사용되는 코드를 반환합니다.

public:
 abstract System::CodeDom::CodeExpression ^ GetCodeExpression(System::Web::UI::BoundPropertyEntry ^ entry, System::Object ^ parsedData, System::Web::Compilation::ExpressionBuilderContext ^ context);
public abstract System.CodeDom.CodeExpression GetCodeExpression(System.Web.UI.BoundPropertyEntry entry, object parsedData, System.Web.Compilation.ExpressionBuilderContext context);
abstract member GetCodeExpression : System.Web.UI.BoundPropertyEntry * obj * System.Web.Compilation.ExpressionBuilderContext -> System.CodeDom.CodeExpression
Public MustOverride Function GetCodeExpression (entry As BoundPropertyEntry, parsedData As Object, context As ExpressionBuilderContext) As CodeExpression

매개 변수

entry
BoundPropertyEntry

식에 의해 바인딩된 속성에 대한 정보를 나타내는 개체입니다.

parsedData
Object

에서 반환 ParseExpression(String, Type, ExpressionBuilderContext)한 구문 분석된 데이터를 포함하는 개체입니다.

context
ExpressionBuilderContext

식의 평가에 대한 컨텍스트 정보입니다.

반품

속성 할당에 사용되는 A CodeExpression 입니다.

예제

다음 코드 예제에서는 메서드를 재정의 하 여 개체를 CodeExpression 반환 하는 GetCodeExpression 방법을 보여 줍니다.

public override CodeExpression GetCodeExpression(BoundPropertyEntry entry, 
object parsedData, ExpressionBuilderContext context)
{
    Type type1 = entry.DeclaringType;
    PropertyDescriptor descriptor1 = TypeDescriptor.GetProperties(type1)[entry.PropertyInfo.Name];
    CodeExpression[] expressionArray1 = new CodeExpression[3];
    expressionArray1[0] = new CodePrimitiveExpression(entry.Expression.Trim());
    expressionArray1[1] = new CodeTypeOfExpression(type1);
    expressionArray1[2] = new CodePrimitiveExpression(entry.Name);
    return new CodeCastExpression(descriptor1.PropertyType, new CodeMethodInvokeExpression(new 
   CodeTypeReferenceExpression(base.GetType()), "GetEvalData", expressionArray1));
}
Public Overrides Function GetCodeExpression(ByVal entry _
   As BoundPropertyEntry, ByVal parsedData As Object, ByVal context _
   As ExpressionBuilderContext) As CodeExpression
    Dim type1 As Type = entry.DeclaringType
    Dim descriptor1 As PropertyDescriptor = _
       TypeDescriptor.GetProperties(type1)(entry.PropertyInfo.Name)
    Dim expressionArray1(2) As CodeExpression
    expressionArray1(0) = New CodePrimitiveExpression(entry.Expression.Trim())
    expressionArray1(1) = New CodeTypeOfExpression(type1)
    expressionArray1(2) = New CodePrimitiveExpression(entry.Name)
    Return New CodeCastExpression(descriptor1.PropertyType, _
       New CodeMethodInvokeExpression(New CodeTypeReferenceExpression _
       (MyBase.GetType()), "GetEvalData", expressionArray1))
End Function

설명

클래스에서 상속되는 클래스는 ExpressionBuilder 추상 메서드를 GetCodeExpression 구현해야 합니다.

구현자 참고

사용자 지정 식 작성기를 구현 하는 경우 컨트롤 속성에 대 한 적절 한 형식 캐스팅을 수행 하 고 개체에서 CodeExpression 캐스트 작업을 반환 해야 합니다.

적용 대상