Freigeben über


ExpressionBuilder.GetCodeExpression Methode

Definition

Gibt nach dem Überschreiben in einer abgeleiteten Klasse Code zurück, mit dem während der Seitenausführung der ausgewertete Ausdruck abgerufen wird.

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

Parameter

entry
BoundPropertyEntry

Das Objekt, das Informationen über die Eigenschaft enthält, an die durch den Ausdruck gebunden wird.

parsedData
Object

Das Objekt, das analysierte Daten enthält, wie sie von ParseExpression(String, Type, ExpressionBuilderContext) zurückgegeben werden.

context
ExpressionBuilderContext

Kontextinformationen für die Auswertung des Ausdrucks.

Gibt zurück

Eine CodeExpression, die zur Eigenschaftenzuweisung verwendet wird.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie ein CodeExpression Objekt zurückgegeben wird, indem die GetCodeExpression -Methode überschrieben wird.

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

Hinweise

Klassen, die von der ExpressionBuilder -Klasse erben, müssen die GetCodeExpression abstrakte Methode implementieren.

Hinweise für Ausführende

Wenn Sie einen benutzerdefinierten Ausdrucks-Generator implementieren, müssen Sie die richtige Typumwandlung für die Steuerelementeigenschaft ausführen und den Umwandlungsvorgang im CodeExpression -Objekt zurückgeben.

Gilt für: