Aracılığıyla paylaş


ExpressionBuilder.GetCodeExpression Yöntem

Tanım

Türetilmiş bir sınıfta geçersiz kılındığında, değerlendirilen ifadeyi almak için sayfa yürütme sırasında kullanılan kodu döndürür.

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

Parametreler

entry
BoundPropertyEntry

ifadesiyle ilişkili özelliği hakkındaki bilgileri temsil eden nesne.

parsedData
Object

tarafından ParseExpression(String, Type, ExpressionBuilderContext)döndürülen ayrıştırılmış verileri içeren nesne.

context
ExpressionBuilderContext

İfadenin değerlendirilmesi için bağlamsal bilgiler.

Döndürülenler

CodeExpression Özellik ataması için kullanılan bir.

Örnekler

Aşağıdaki kod örneği, yöntemini geçersiz kılarak bir CodeExpression nesnenin nasıl döndürüleceği gösterilmektedir GetCodeExpression .

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

Açıklamalar

sınıfından devralan sınıfların ExpressionBuilderGetCodeExpression soyut yöntemini uygulaması gerekir.

Uygulayanlara Notlar

Özel bir ifade oluşturucusu uygularsanız, denetim özelliği için uygun tür atamasını gerçekleştirmeniz ve nesnede CodeExpression atama işlemini döndürmeniz gerekir.

Şunlara uygulanır