ExpressionBuilder.GetCodeExpression Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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.