Esta página foi útil?
Seus comentários sobre este conteúdo são importantes. Queremos saber sua opinião.
Comentários adicionais?
1500 caracteres restantes
Exportar (0) Imprimir
Expandir Tudo
Este artigo foi traduzido por máquina. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original. Mais informações.
Tradução
Original

ExpressionBuilder Classe

Avalia as expressões durante a análise de página.

Namespace:  System.Web.Compilation
Assembly:  System.Web (em System.Web. dll)

[AspNetHostingPermissionAttribute(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermissionAttribute(SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
public abstract class ExpressionBuilder

The ExpressionBuilder class is the base class for expression builders, such as the AppSettingsExpressionBuilder class, that create code expressions during page parsing.

Builders Expression Parse declarativo Expressions and Criar Código to values recuperar ligado to a Controlarar Propriedade.Em situações não-Compilar, um Construtor de expressões que ofereça suporte a um recurso não-Compilar avaliará a expressão durante o tempo de execução.

When the page parser encounters an expression that is delimited with the string <%$ %>, it creates an expression builder for the expression based on the prefix in the string.O prefixo é a parte da Cadeia de Caracteres que está à esquerda de Ponto-e-Vírgula (:).For example, when the parser encounters the string <%$ ConnectionStrings:MessageDB %>, it creates a ConnectionStringsExpressionBuilder object.Prefixes are associated with expression builders in the Web.config file in the ExpressionBuilders section.

O lado direito da expressão declarativa é passado para o Construtor de expressões para avaliação.Override the GetCodeExpression method to generate code that will be compiled with the page.

If you want the custom expression builder to be active on pages that are not compiled, you must also override the EvaluateExpression method to return an object that represents the results of the expression.You also must override the SupportsEvaluate property to indicate that the custom expression builder does support no-compile pages.

Você pode definir um conjunto de propriedades e métodos para selecionar e avaliar uma expressão que é associada a uma propriedade de Controlarar em tempo de design implementando um editor expressão.O editor é marcado na Construtor de expressões a classe-nível metadados.For more information, see ExpressionEditor.

OBSERVAÇÕES PARA Inheritors:

When you inherit from the ExpressionBuilder class, you must override the GetCodeExpression method.

The following code examples demonstrate how to build a custom expression builder by implementing the ExpressionBuilder abstract class.This implementation of ExpressionBuilder returns an evaluated statement that is passed to the expression.Para executar esse exemplo, você deve primeiro registrar o Personalizar Construtor de expressões no arquivo web.config.Primeiro exemplo de código demonstra como registrar o Personalizar Construtor de expressões no arquivo web.config.

<configuration>
    <system.web>
       <compilation>
          <expressionBuilders>
              <add expressionPrefix="MyCustomExpression"
               type="MyCustomExpressionBuilder"/>
          </expressionBuilders>
       </compilation>
    </system.web>
</configuration>

O segundo exemplo de código demonstra como fazer referência a expressão em um arquivo .aspx.

<asp:Label ID="Label1" runat="server" 
Text="<%$ MyCustomExpression:Hello, world! %>" />

The third code example demonstrates how to develop a customized expression builder by deriving from ExpressionBuilder.Para executar esse exemplo de código, você deve colocar a classe na pasta App_Code.

 System;
 System.CodeDom;
 System.Web.UI;
 System.ComponentModel;
 System.Web.Compilation;
 System.Web.UI.Design;



[ExpressionPrefix()]
[ExpressionEditor()]
  MyExpressionBuilder : ExpressionBuilder
{
    
    
      object GetEvalData(string expression, Type target, string entry)
    {
         expression;
    }

      object EvaluateExpression(object target, BoundPropertyEntry entry, 
	object parsedData, ExpressionBuilderContext context)
    {
         GetEvalData(entry.Expression, target.GetType(), entry.Name);
    }

      CodeExpression GetCodeExpression(BoundPropertyEntry entry, 
	object parsedData, ExpressionBuilderContext context)
    {
        Type type1 = entry.DeclaringType;
        PropertyDescriptor descriptor1 = TypeDescriptor.GetProperties(type1)[entry.PropertyInfo.Name];
        CodeExpression[] expressionArray1 =  CodeExpression[3];
        expressionArray1[0] =  CodePrimitiveExpression(entry.Expression.Trim());
        expressionArray1[1] =  CodeTypeOfExpression(type1);
        expressionArray1[2] =  CodePrimitiveExpression(entry.Name);
          CodeCastExpression(descriptor1.PropertyType,  CodeMethodInvokeExpression( 
	   CodeTypeReferenceExpression(.GetType()), , expressionArray1));
    }

       SupportsEvaluate
    {
         {  ; }
    }
}


Quaisquer membros públicos estático (compartilhados na Visual Basic) desse tipo são Thread seguro. Não há garantia de que qualquer membro de instância seja isento de segmentos.

Contribuições da comunidade

ADICIONAR
Mostrar:
© 2015 Microsoft