ExpressionEditor Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Define um conjunto de propriedades e métodos para avaliar uma expressão que é associada a uma propriedade de controle em tempo de design e fornecer uma folha do editor de expressões para o host de design visual usar na caixa de diálogo do editor de expressões. Esta classe é abstrata.
public ref class ExpressionEditor abstract
public abstract class ExpressionEditor
type ExpressionEditor = class
Public MustInherit Class ExpressionEditor
- Herança
-
ExpressionEditor
- Derivado
Exemplos
O exemplo de código a seguir demonstra como derivar da ExpressionEditor classe para definir um editor de expressões personalizadas.
using System;
using System.Collections;
using System.Collections.Specialized;
using System.CodeDom;
using System.Configuration;
using System.Web.UI.Design;
using System.Web.Compilation;
namespace ExpressionEditorSamples.CS
{
[ExpressionPrefix("CustomAppSettings")]
[ExpressionEditor(typeof(ExpressionEditorSamples.CS.CustomAppSettingsEditor))]
public class CustomAppSettingsBuilder : AppSettingsExpressionBuilder
{
// Use the built-in AppSettingsExpressionBuilder class,
// but associate it with a custom expression editor class.
}
public class CustomAppSettingsEditor : System.Web.UI.Design.ExpressionEditor
{
public override object EvaluateExpression(string expression, object parseTimeData, Type propertyType, IServiceProvider serviceProvider)
{
KeyValueConfigurationCollection customSettings = null;
if (serviceProvider != null)
{
IWebApplication webApp = (IWebApplication)serviceProvider.GetService(typeof(IWebApplication));
if (webApp != null)
{
Configuration config = webApp.OpenWebConfiguration(true);
if (config != null)
{
AppSettingsSection settingsSection = config.AppSettings;
if (settingsSection != null)
{
customSettings = settingsSection.Settings;
}
}
}
}
if (customSettings != null)
{
return customSettings[expression];
}
return expression;
}
}
}
Comentários
Um host de designer visual, como Visual Studio 2005, usa a ExpressionEditor classe para apresentar folhas de editor de expressões personalizadas ao usuário e, em seguida, avaliar a expressão selecionada para renderização em tempo de design.
Quando você procura um Expressions controle na grade propriedades de tempo de design, o designer visual exibe uma caixa de diálogo para definir expressões para uma propriedade de controle. Você pode selecionar o tipo de expressão com base em uma lista de prefixos de expressão. Quando você seleciona um prefixo de expressão na lista, o designer visual usa os objetos e ExpressionEditorSheet associados ExpressionEditor para definir, avaliar e converter a cadeia de caracteres de expressão com base na sintaxe desse tipo de expressão. O designer visual define a expressão para a propriedade de controle associada e usa o resultado da expressão avaliada para atribuir valores de propriedade de controle que são renderizados na superfície de design.
Os métodos estáticos GetExpressionEditor obtêm o editor de expressões associado a um determinado prefixo de expressão ou construtor de expressões. A ExpressionPrefix propriedade de um ExpressionEditor objeto retorna o prefixo de expressão configurado. O EvaluateExpression método avalia uma cadeia de caracteres de expressão de entrada. O GetExpressionEditorSheet método retorna a ExpressionEditorSheet implementação usada para solicitar as propriedades da expressão personalizada na caixa de diálogo expressões.
Normalmente, para dar suporte a um novo tipo de expressão no momento do design, você define um prefixo de expressão exclusiva e fornece implementações e ExpressionEditor personalizadasExpressionBuilder. Opcionalmente, você pode fornecer uma implementação personalizada ExpressionEditorSheet que define propriedades que são usadas para formar a expressão na caixa de diálogo expressões.
O prefixo de expressão identifica o tipo de expressão personalizada e associa uma expressão ao construtor de expressões e ao editor de expressões. Quando expressões personalizadas são analisadas em uma página, o prefixo de expressão é usado para criar instâncias das classes e ExpressionEditor associadasExpressionBuilder. Para associar um prefixo de expressão a um construtor de expressões e editor de expressões, aplique os ExpressionEditorAttribute atributos e ExpressionPrefixAttribute a classe personalizada ExpressionBuilder e configure o prefixo de expressão para um construtor de expressões no expressionBuilders
elemento no arquivo de configuração da Web. O prefixo não é necessário, mas altamente recomendado.
Notas aos Implementadores
As seguintes etapas são necessárias para derivar uma classe personalizada ExpressionEditor :
Substitua o EvaluateExpression(String, Object, Type, IServiceProvider) método para avaliar o tipo de expressão personalizada no momento do design.
Opcionalmente, substitua o GetExpressionEditorSheet(String, IServiceProvider) método para retornar uma classe personalizada que define as propriedades que são combinadas para formar a expressão personalizada.
Aplique o ExpressionEditorAttribute atributo na declaração de ExpressionBuilder classe para associar o construtor de expressões personalizadas à classe de editor de expressão derivada.
Por exemplo, a ResourceExpressionEditor classe deriva da ExpressionEditor classe e fornece uma implementação para avaliar e associar uma referência de cadeia de caracteres de recurso a uma propriedade de controle em tempo de design. A ResourceExpressionBuilder classe está associada ao prefixo Resources
de expressão e à ResourceExpressionEditor implementação. O GetExpressionEditorSheet(String, IServiceProvider) método retorna uma ResourceExpressionEditorSheet, que define as propriedades individuais que formam uma expressão de referência de recurso.
Construtores
ExpressionEditor() |
Inicializa uma nova instância da classe ExpressionEditor. |
Propriedades
ExpressionPrefix |
Obtém o prefixo de expressão que identifica as cadeias de caracteres de expressão com suporte na implementação do editor de expressão. |
Métodos
Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
EvaluateExpression(String, Object, Type, IServiceProvider) |
Avalia uma cadeia de caracteres de expressão e fornece o valor de tempo de design para uma propriedade de controle. |
GetExpressionEditor(String, IServiceProvider) |
Retorna uma implementação ExpressionEditor associada ao prefixo de expressão especificado. |
GetExpressionEditor(Type, IServiceProvider) |
Retorna uma implementação ExpressionEditor associada ao tipo de construtor de expressões especificado. |
GetExpressionEditorSheet(String, IServiceProvider) |
Retorna uma folha do editor de expressão que está associada ao editor de expressão atual. |
GetHashCode() |
Serve como a função de hash padrão. (Herdado de Object) |
GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
MemberwiseClone() |
Cria uma cópia superficial do Object atual. (Herdado de Object) |
ToString() |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |