ExpressionBuilder.GetCodeExpression Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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.