ExpressionBuilder.GetCodeExpression Metodo

Definizione

Quando sottoposto a override in una classe derivata, restituisce il codice utilizzato durante l'esecuzione della pagina per ottenere l'espressione valutata.

public abstract System.CodeDom.CodeExpression GetCodeExpression (System.Web.UI.BoundPropertyEntry entry, object parsedData, System.Web.Compilation.ExpressionBuilderContext context);

Parametri

entry
BoundPropertyEntry

Oggetto che rappresenta le informazioni relative alla proprietà associata dall'espressione.

parsedData
Object

Oggetto contenente i dati analizzati restituiti dal metodo ParseExpression(String, Type, ExpressionBuilderContext).

context
ExpressionBuilderContext

Informazioni contestuali per la valutazione dell'espressione.

Restituisce

Oggetto CodeExpression utilizzato per l'assegnazione della proprietà.

Esempio

Nell'esempio di codice seguente viene illustrato come restituire un CodeExpression oggetto eseguendo l'override del GetCodeExpression metodo .

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));
}

Commenti

Le classi che ereditano dalla ExpressionBuilder classe devono implementare il GetCodeExpression metodo astratto.

Note per gli implementatori

Se si implementa un generatore di espressioni personalizzato, è necessario eseguire il cast del tipo appropriato per la proprietà del controllo e restituire l'operazione cast nell'oggetto CodeExpression .

Si applica a

Prodotto Versioni
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1