Exportar (0) Imprimir
Expandir todo
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original
Este tema aún no ha recibido ninguna valoración - Valorar este tema

ExpressionPrefixAttribute (Clase)

Especifica el atributo de prefijo que se debe utilizar para el generador de expresiones. Esta clase no puede heredarse.

System.Object
  System.Attribute
    System.Web.Compilation.ExpressionPrefixAttribute

Espacio de nombres:  System.Web.Compilation
Ensamblado:  System.Web (en System.Web.dll)
[AttributeUsageAttribute(AttributeTargets.Class, AllowMultiple = false)]
public sealed class ExpressionPrefixAttribute : Attribute

El tipo ExpressionPrefixAttribute expone los siguientes miembros.

  NombreDescripción
Método públicoExpressionPrefixAttributeInicializa una nueva instancia de la clase ExpressionPrefixAttribute.
Arriba
  NombreDescripción
Propiedad públicaExpressionPrefixObtiene el valor de prefijo correspondiente al objeto ExpressionBuilder actual.
Propiedad públicaTypeIdCuando se implementa en una clase derivada, obtiene un identificador único para este Attribute. (Se hereda de Attribute).
Arriba
  NombreDescripción
Método públicoEqualsInfraestructura. Devuelve un valor que indica si esta instancia equivale al objeto especificado. (Se hereda de Attribute).
Método públicoGetHashCodeDevuelve el código hash de esta instancia. (Se hereda de Attribute).
Método públicoGetType Obtiene el Typede la instancia actual. (Se hereda de Object).
Método públicoIsDefaultAttributeCuando se invalida en una clase derivada, indica si el valor de esta instancia es el valor predeterminado para la clase derivada. (Se hereda de Attribute).
Método públicoMatch Cuando se invalida en una clase derivada, devuelve un valor que indica si esta instancia es igual al objeto especificado. (Se hereda de Attribute).
Método públicoToString Retorna una cadena que representa al objeto actual. (Se hereda de Object).
Arriba
  NombreDescripción
Implementación explícita de interfacesMétodo privado_Attribute.GetIDsOfNamesAsigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío. (Se hereda de Attribute).
Implementación explícita de interfacesMétodo privado_Attribute.GetTypeInfoObtiene la información de tipos de un objeto, que puede utilizarse para obtener la información de tipos de una interfaz. (Se hereda de Attribute).
Implementación explícita de interfacesMétodo privado_Attribute.GetTypeInfoCount

Recupera el número de interfaces de tipo de información que suministra un objeto (0 ó 1)

(Se hereda de Attribute).
Implementación explícita de interfacesMétodo privado_Attribute.InvokeProporciona acceso a las propiedades y los métodos expuestos por un objeto. (Se hereda de Attribute).
Arriba

La clase ExpressionPrefixAttribute se utiliza en tiempo de diseño con expresiones no definidas en el archivo de configuración. La propiedad ExpressionPrefix se utiliza para obtener el nombre del prefijo que está asociado con el objeto ExpressionPrefixAttribute. Un generador de expresiones busca todas las instrucciones que tengan el siguiente formato:

<%$ [expressionPrefix]:[expressionValue] %>

A continuación, basándose en el prefijo de la expresión, el generador de expresiones genera el código de asignación de la propiedad. El parámetro expressionPrefix hace referencia a un generador de expresiones configurado, definido en el archivo de configuración o mediante un objeto ExpressionPrefixAttribute.

En el ejemplo de código siguiente se muestra cómo se utiliza la clase ExpressionPrefixAttribute. El atributo se aplica a un generador de expresiones personalizado que implementa la clase abstracta ExpressionBuilder. Esta implementación de ExpressionBuilder devuelve una instrucción evaluada que se pasa a la expresión. Para ejecutar este ejemplo, en primer lugar debe registrar el generador de expresiones personalizado en el archivo Web.config. El primer ejemplo de código muestra cómo registrar el generador de expresiones personalizado en el archivo Web.config.

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

El segundo ejemplo de código muestra cómo hacer referencia a la expresión en un archivo .aspx.

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

El tercer ejemplo de código muestra cómo desarrollar un generador de expresiones personalizado mediante una derivación de ExpressionBuilder. Para ejecutar este ejemplo de código, debe colocar la clase en la carpeta App_Code.


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

// Apply ExpressionEditorAttributes to allow the 
// expression to appear in the designer.
[ExpressionPrefix("MyCustomExpression")]
[ExpressionEditor("MyCustomExpressionEditor")]
public class MyExpressionBuilder : ExpressionBuilder
{
    // Create a method that will return the result 
    // set for the expression argument.
    public static object GetEvalData(string expression, Type target, string entry)
    {
        return expression;
    }

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

    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 override bool SupportsEvaluate
    {
        get { return true; }
    }
}


.NET Framework

Compatible con: 4.5, 4, 3.5, 3.0, 2.0

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.
Todos los miembros públicos static (Shared en Visual Basic) de este tipo son seguros para subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.
¿Te ha resultado útil?
(Caracteres restantes: 1500)
Gracias por sus comentarios

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft. Reservados todos los derechos.