ExpressionEditor Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Define um conjunto de propriedades e métodos para avaliar uma expressão associada a uma propriedade de controlo no momento do design e para fornecer uma folha de editor de expressões ao host de design visual para utilização na caixa de diálogo do editor de expressões. Esta aula é 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 seguinte demonstra como derivar a partir da ExpressionEditor classe para definir um editor de expressões personalizado.
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;
}
}
}
Observações
Um host designer visual, como o Visual Studio 2005, usa a classe ExpressionEditor para apresentar folhas de editor de expressões personalizadas ao utilizador e depois avaliar a expressão selecionada para renderização em tempo de design.
Quando navega pela Expressions propriedade à procura de um controlo na grelha de Propriedades em tempo de design, o designer visual apresenta uma caixa de diálogo para definir expressões para uma propriedade de controlo. Pode selecionar o tipo de expressão com base numa lista de prefixos de expressão. Quando selecionas um prefixo de expressão da lista, o designer visual usa os objetos e ExpressionEditorSheet associados ExpressionEditor para definir, avaliar e converter a string de expressão com base na sintaxe desse tipo de expressão. O designer visual define a expressão para a propriedade de controlo associada e depois usa o resultado da expressão avaliada para atribuir valores da propriedade de controlo que são renderizados na superfície de design.
Os métodos estáticos GetExpressionEditor recebem o editor de expressões associado a um prefixo ou construtor de expressões específico. A ExpressionPrefix propriedade para um ExpressionEditor objeto devolve o prefixo de expressão configurada. O EvaluateExpression método avalia uma cadeia de expressão de entrada. O GetExpressionEditorSheet método devolve a ExpressionEditorSheet implementação que é usada para pedir as propriedades de expressão personalizadas na caixa de diálogo expressões.
Normalmente, para suportar um novo tipo de expressão no momento do design, defines um prefixo de expressão único e forneces personalizados ExpressionBuilder e ExpressionEditor implementações. Opcionalmente, pode fornecer uma implementação personalizada ExpressionEditorSheet que defina propriedades que são usadas para formar a expressão na caixa de diálogo de expressões.
O prefixo de expressão identifica o tipo de expressão personalizado e associa uma expressão ao construtor de expressões e ao editor de expressões. Quando expressões personalizadas são analisadas numa 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 um editor de expressões, aplique os ExpressionEditorAttribute atributos e ExpressionPrefixAttribute à classe personalizada ExpressionBuilder e configure o prefixo de expressão para um construtor de expressões no expressionBuilders elemento no ficheiro de configuração Web. O prefixo não é obrigatório, mas é altamente recomendado.
Notas para Implementadores
São necessários os seguintes passos para derivar uma classe personalizada ExpressionEditor :
Sobrepor o EvaluateExpression(String, Object, Type, IServiceProvider) método para avaliar o tipo de expressão personalizado no momento do design.
Opcionalmente, substitua o GetExpressionEditorSheet(String, IServiceProvider) método para devolver uma classe personalizada que defina propriedades que são combinadas para formar a expressão personalizada.
Aplique o ExpressionEditorAttribute atributo na ExpressionBuilder declaração de classe para associar o construtor de expressões personalizadas à classe do editor de expressões derivadas.
Por exemplo, a ResourceExpressionEditor classe deriva da ExpressionEditor classe e fornece uma implementação para avaliar e associar uma referência de cadeia de recursos a uma propriedade de controlo no momento do projeto. A ResourceExpressionBuilder classe está associada ao prefixo Resources de expressão e à ResourceExpressionEditor implementação. O GetExpressionEditorSheet(String, IServiceProvider) método devolve um ResourceExpressionEditorSheet, que define as propriedades individuais que formam uma expressão de referência de recurso.
Construtores
| Name | Description |
|---|---|
| ExpressionEditor() |
Inicializa uma nova instância da ExpressionEditor classe. |
Propriedades
| Name | Description |
|---|---|
| ExpressionPrefix |
Obtém o prefixo de expressão que identifica as cadeias de expressão suportadas pela implementação do editor de expressões. |
Métodos
| Name | Description |
|---|---|
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| EvaluateExpression(String, Object, Type, IServiceProvider) |
Avalia uma cadeia de expressão e fornece o valor em tempo de projeto para uma propriedade de controlo. |
| GetExpressionEditor(String, IServiceProvider) |
Devolve uma ExpressionEditor implementação associada ao prefixo de expressão especificado. |
| GetExpressionEditor(Type, IServiceProvider) |
Devolve uma ExpressionEditor implementação associada ao tipo de construtor de expressões especificado. |
| GetExpressionEditorSheet(String, IServiceProvider) |
Devolve uma folha de editor de expressões associada ao editor de expressões atual. |
| GetHashCode() |
Serve como função de hash predefinida. (Herdado de Object) |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| ToString() |
Devolve uma cadeia que representa o objeto atual. (Herdado de Object) |