ExpressionBuilder.GetCodeExpression Méthode

Définition

En cas de substitution dans une classe dérivée, retourne du code qui est utilisé pendant l'exécution de la page pour obtenir l'expression évaluée.

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

Paramètres

entry
BoundPropertyEntry

Objet représentant des informations à propos de la propriété liée par l'expression.

parsedData
Object

Objet contenant des données analysées telles qu'elles sont retournées par ParseExpression(String, Type, ExpressionBuilderContext).

context
ExpressionBuilderContext

Informations contextuelles pour l'évaluation de l'expression.

Retours

CodeExpression utilisée pour l'assignation de propriété.

Exemples

L’exemple de code suivant montre comment retourner un CodeExpression objet en remplaçant la GetCodeExpression méthode .

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

Remarques

Les classes qui héritent de la ExpressionBuilder classe doivent implémenter la GetCodeExpression méthode abstraite.

Notes pour les responsables de l’implémentation

Si vous implémentez un générateur d’expressions personnalisées, vous devez effectuer le cast de type approprié pour la propriété de contrôle et retourner l’opération de conversion dans l’objet CodeExpression .

S’applique à