ExpressionBuilder.GetCodeExpression Metod

Definition

När den åsidosätts i en härledd klass returneras kod som används under sidkörningen för att hämta det utvärderade uttrycket.

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

Parametrar

entry
BoundPropertyEntry

Objektet som representerar information om egenskapen som är bunden till uttrycket.

parsedData
Object

Objektet som innehåller tolkade data som returneras av ParseExpression(String, Type, ExpressionBuilderContext).

context
ExpressionBuilderContext

Sammanhangsinformation för utvärderingen av uttrycket.

Returer

En CodeExpression som används för egenskapstilldelning.

Exempel

Följande kodexempel visar hur du returnerar ett CodeExpression objekt genom att GetCodeExpression åsidosätta metoden.

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

Kommentarer

Klasser som ärver från ExpressionBuilder klassen måste implementera den GetCodeExpression abstrakta metoden.

Anteckningar till implementerare

Om du implementerar en anpassad uttrycksbyggare måste du utföra rätt typgjutning för kontrollegenskapen och returnera gjutningsåtgärden CodeExpression i objektet.

Gäller för