ExpressionBuilder.GetCodeExpression Méthode

Définition

En cas de substitution dans une classe dérivée, retourne le code 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 qui représente des informations sur la propriété liée à l’expression.

parsedData
Object

Objet contenant des données analysées comme retourné par ParseExpression(String, Type, ExpressionBuilderContext).

context
ExpressionBuilderContext

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

Retours

Utilisé CodeExpression pour l’affectation de propriétés.

Exemples

L’exemple de code suivant montre comment retourner un CodeExpression objet en substituant 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 renvoyer l’opération de cast dans l’objet CodeExpression .

S’applique à