ExpressionBuilder.GetCodeExpression Methode

Definitie

Wanneer deze wordt overschreven in een afgeleide klasse, retourneert u code die wordt gebruikt tijdens het uitvoeren van de pagina om de geëvalueerde expressie te verkrijgen.

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

Parameters

entry
BoundPropertyEntry

Het object dat informatie vertegenwoordigt over de eigenschap die afhankelijk is van de expressie.

parsedData
Object

Het object met geparseerde gegevens zoals geretourneerd door ParseExpression(String, Type, ExpressionBuilderContext).

context
ExpressionBuilderContext

Contextuele informatie voor de evaluatie van de expressie.

Retouren

Een CodeExpression die wordt gebruikt voor eigenschapstoewijzing.

Voorbeelden

In het volgende codevoorbeeld ziet u hoe u een CodeExpression object kunt retourneren door de GetCodeExpression methode te overschrijven.

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

Opmerkingen

Klassen die overnemen van de ExpressionBuilder klasse moeten de GetCodeExpression abstracte methode implementeren.

Notities voor uitvoerders

Als u een opbouwfunctie voor aangepaste expressies implementeert, moet u het juiste type casten voor de besturingselementeigenschap uitvoeren en de cast-bewerking in het CodeExpression object retourneren.

Van toepassing op