Partilhar via


XamlMember Classe

Definição

Fornece o identificador do sistema de tipo XAML para membros de tipos de XAML. O identificador é usado por leitores de XAML e gravadores de XAML durante o processamento de nós de membros (quando o leitor de XAML está posicionado em um StartMember) e também para a lógica de sistema do tipo XAML geral.

public ref class XamlMember : IEquatable<System::Xaml::XamlMember ^>
public class XamlMember : IEquatable<System.Xaml.XamlMember>
type XamlMember = class
    interface IEquatable<XamlMember>
Public Class XamlMember
Implements IEquatable(Of XamlMember)
Herança
XamlMember
Derivado
Implementações

Comentários

XamlMember pode usar três metodologias para retornar informações sobre um membro XAML: reflexão clr (common language runtime) padrão; uma técnica de reflexão somente referência que chama APIs internas que usam sinalizadores de bit otimizados; ou chamando em substituições virtuais da Lookup* API fornecida por possíveis XamlMember subclasses. Para a maioria dos usos de APIs de serviços XAML .NET Framework e a XamlMember API, use o contexto de esquema XAML padrão. O contexto de esquema XAML padrão para .NET Framework serviços XAML usa o suporte CLR para o sistema de tipos. Isso permite que os leitores XAML e gravadores XAML trabalhem com qualquer tipo ou membro definido ou disponível para o CLR e suas técnicas de reflexão.

ApIs de pesquisa* e classes derivadas de XamlMember

XamlMember define vários membros virtuais que as classes derivadas podem substituir. Esses membros têm nomes que sempre começam com a cadeia de caracteres Lookup. O restante do nome da API faz referência à propriedade que o método virtual influencia. Por exemplo, uma XamlMember classe derivada pode substituir LookupTargetType para influenciar o que a propriedade TargetType definida por base retorna em uma classe derivada. Você pode prever valores retornados para essas propriedades em XamlMember ou classes derivadas existentes lendo a documentação dos métodos relevantes Lookup* .

A finalidade dos métodos é fornecer uma técnica de Lookup* extensão do sistema de tipo XAML que incorpora a XamlMember classe base. Ao derivar de XamlMember e substituir os Lookup membros virtuais, você pode definir o conceito de um membro XAML para um esquema XAML em um sistema de tipo XAML sem estar vinculado às especificidades de um sistema de tipo de suporte ou tecnologia. Você também pode usar um contexto de esquema XAML fornecido nesse esquema e ainda retornar os resultados desejados.

Por exemplo, considere a XamlMember propriedade IsWritePublic. Essa propriedade informa aos chamadores que operações como usar um XamlWriter para serialização podem gravar um valor para esse membro em um objeto de destino. Na implementação padrão, a determinação de se o membro é gravável é feita usando técnicas de reflexão contra o CLR Type de suporte e seus membros (o MemberInfo). Portanto, por padrão, o sistema de tipos XAML depende do sistema de tipos CLR. No entanto, você pode remover essa dependência para o relatório do sistema de tipo XAML de IsWritePublic substituindo a API LookupIsWritePublic. Em sua substituição, você pode usar outras determinações, como metadados específicos de sua tecnologia, uma tabela de pesquisa primária otimizada para um vocabulário XAML fixo ou uma variedade de outras estratégias para determinar se um membro XAML é gravável em seu vocabulário XAML.

Construindo XamlMember sem contexto de esquema XAML

A maioria dos construtores de XamlMember exige um XamlSchemaContext como parte de sua inicialização. O XamlSchemaContext também é necessário para muitas operações internas XamlSchemaContext , como a obtenção de informações que estão sendo encaminhadas do tipo de suporte. Quando você está trabalhando com a XamlMember API, normalmente você tem um XamlSchemaContext que está disponível em um constructo ao redor, como um XamlWriter. Nesse caso, você pode passar a XamlSchemaContext referência para todas as chamadas do sistema de tipo XAML que exigem um contexto de esquema XAML.

Um construtor específico, XamlMember(String, XamlType, Boolean), não requer um XamlSchemaContext. No entanto, um XamlMember que é construído com a XamlMember(String, XamlType, Boolean) assinatura retorna true para IsUnknown.

Para um caminho de carga que envolve XamlObjectWriter, esse membro não pode ser gravado em um grafo de objeto. Usando a implementação de serviços XAML .NET Framework, a XamlObjectWriter.WriteStartMember chamada lança um XamlObjectWriterException quando os relatórios true relevantes XamlMember para IsUnknown.

Você não deve construir um XamlMember que tenha um valor de true para IsUnknown , a menos que sua implementação possa lidar com as exceções de XamlObjectWriterou você tenha outras maneiras de ajustar o XamlObjectWriter comportamento. Por exemplo, uma ou mais das seguintes opções podem ser verdadeiras para sua implementação:

  • O contexto do esquema XAML está disponível posteriormente.
  • Você usa um padrão de invocador de membro.
  • Você substitui deliberadamente XamlObjectWriter.WriteStartMember em um gravador XAML personalizado.

Construtores

XamlMember(EventInfo, XamlSchemaContext)

Inicializa uma nova instância da classe XamlMember usando o EventInfo do sistema de tipo CLR e um XamlSchemaContext.

XamlMember(EventInfo, XamlSchemaContext, XamlMemberInvoker)

Inicializa uma nova instância da classe XamlMember usando o EventInfo do sistema de tipo CLR e um XamlSchemaContext, incluindo informações de XamlMemberInvoker.

XamlMember(PropertyInfo, XamlSchemaContext)

Inicializa uma nova instância da classe XamlMember usando o PropertyInfo do sistema de tipo CLR e um XamlSchemaContext.

XamlMember(PropertyInfo, XamlSchemaContext, XamlMemberInvoker)

Inicializa uma nova instância da classe XamlMember usando o PropertyInfo de reflexão e um XamlSchemaContext, incluindo informações de XamlMemberInvoker.

XamlMember(String, MethodInfo, MethodInfo, XamlSchemaContext)

Inicializa uma nova instância da classe XamlMember para um XamlMember que representa uma propriedade anexável.

XamlMember(String, MethodInfo, MethodInfo, XamlSchemaContext, XamlMemberInvoker)

Inicializa uma nova instância da classe XamlMember para um XamlMember que representa uma propriedade anexável, incluindo informações de XamlMemberInvoker.

XamlMember(String, MethodInfo, XamlSchemaContext)

Inicializa uma nova instância da classe XamlMember para um XamlMember que representa um evento anexável.

XamlMember(String, MethodInfo, XamlSchemaContext, XamlMemberInvoker)

Inicializa uma nova instância da classe XamlMember para um XamlMember que representa um evento anexável, incluindo informações de XamlMemberInvoker.

XamlMember(String, XamlType, Boolean)

Inicializa uma nova instância da classe XamlMember usando o nome da cadeia de caracteres e as informações de XamlType declarativo. Um XamlMember que é construído com esta assinatura tem limitações significativas.

Propriedades

DeclaringType

Obtém o XamlType para o tipo que declara o membro que é associado a esse XamlMember.

DeferringLoader

Obtém um objeto XamlValueConverter<TConverterBase>, que é usado para o carregamento adiado de objetos declarados em XAML.

DependsOn

Obtém uma lista de objetos XamlMember. Eles relatam os membros em que há relações de dependência para a ordem de inicialização em relação a esse XamlMember.

Invoker

Obtém a implementação de XamlMemberInvoker que está associada a esse XamlMember.

IsAmbient

Obtém um valor que indica se este XamlMember é relatado como uma propriedade de ambiente.

IsAttachable

Obtém um valor que indica se este XamlMember é um membro anexável.

IsDirective

Obtém um valor que indica se este XamlMember é uma diretiva XAML.

IsEvent

Obtém um valor que indica se esse XamlMember representa um membro de evento.

IsNameValid

Obtém um valor que indica se este XamlMember é inicializado com uma cadeia de caracteres xamlName válida como seu Name.

IsReadOnly

Obtém um valor que indica se esse XamlMember representa um membro somente leitura.

IsReadPublic

Obtém um valor que indica se este XamlMember representa um membro com um acessador get público chamável.

IsUnknown

Obtém um valor que indica se o membro não pode ser resolvido pelo sistema de backup que é usado para a resolução de membro e de tipo.

IsWriteOnly

Obtém um valor que indica se esse XamlMember representa um membro somente gravação.

IsWritePublic

Obtém um valor que indica se este XamlMember representa um membro que tem um acessador set público chamável.

MarkupExtensionBracketCharacters

Define os caracteres de colchete de abertura e fechamento de uma extensão de marcação.

Name

Obtém o nome de cadeia de caracteres xamlName que declara este XamlMember.

PreferredXamlNamespace

Obtém o único URI de namespace de XAML que identifica o namespace de XAML primário para este XamlMember.

SerializationVisibility

Obtém um valor DesignerSerializationVisibility, que indica como um designer visual deve processar o membro.

TargetType

Obtém o XamlType do tipo em que o XamlMember pode existir.

Type

Obtém o XamlType do tipo que é usado pelo membro.

TypeConverter

Obtém um objeto XamlValueConverter<TConverterBase>, que pode ser usado para a construção de conversão de tipo de objetos declarados XAML.

UnderlyingMember

Obtém o MemberInfo do sistema do tipo CLR que está disponível para um membro que é criado por PropertyInfo, MethodInfo ou EventInfo.

ValueSerializer

Obtém um objeto XamlValueConverter<TConverterBase>, que é usado para a serialização de valor de objetos declarados XAML.

Métodos

Equals(Object)

Indica se o objeto atual é igual a outro objeto.

Equals(XamlMember)

Indica se o objeto atual é igual a outro objeto do mesmo tipo.

GetHashCode()

Retorna o código hash deste objeto.

GetType()

Obtém o Type da instância atual.

(Herdado de Object)
GetXamlNamespaces()

Retorna uma lista de namespaces XAML em que esse membro XAML pode existir.

LookupCustomAttributeProvider()

Quando implementado em uma classe derivada, retorna uma implementação ICustomAttributeProvider.

LookupDeferringLoader()

Retorna um objeto XamlValueConverter<TConverterBase>, que é usado para o carregamento adiado de objetos declarados em XAML.

LookupDependsOn()

Retorna uma lista de objetos XamlMember. Os itens na lista relatam os membros em que há relações de dependência para a ordem de inicialização em relação a esse XamlMember.

LookupInvoker()

Retorna um XamlMemberInvoker que é associado a esse XamlMember.

LookupIsAmbient()

Retorna se este XamlMember é relatado como uma propriedade de ambiente.

LookupIsEvent()

Retorna se este XamlMember representa um evento.

LookupIsReadOnly()

Retorna se este XamlMember representa uma propriedade somente leitura pretendida.

LookupIsReadPublic()

Retorna se este XamlMember representa uma propriedade que tem um acessador get público.

LookupIsUnknown()

Retorna se este XamlMember representa um membro que não pode ser resolvido pelo sistema de backup que é usado para a resolução de tipo e membro.

LookupIsWriteOnly()

Retorna se este XamlMember representa um membro que tem um acessador set público, mas não um acessador get público.

LookupIsWritePublic()

Retorna se este XamlMember representa um membro de que tem um acessador set público.

LookupMarkupExtensionBracketCharacters()

Retorna os caracteres de colchete de abertura e fechamento de uma extensão de marcação.

LookupTargetType()

Retorna o XamlType do tipo em que o XamlMember pode existir.

LookupType()

Retorna o XamlType do tipo que é usado pelo membro.

LookupTypeConverter()

Retorna uma implementação do conversos de tipo associado a este XamlMember.

LookupUnderlyingGetter()

Retorna um acessador get associado a este XamlMember.

LookupUnderlyingMember()

Retorna um MemberInfo do sistema de tipo CLR que está associado a este XamlMember.

LookupUnderlyingSetter()

Retorna um acessador set associado a este XamlMember.

LookupValueSerializer()

Retorna uma implementação do serializador de valor que está associado a este XamlMember.

MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
ToString()

Retorna uma representação de cadeia de caracteres desse XamlMember.

Operadores

Equality(XamlMember, XamlMember)

Determina se dois objetos XamlMember especificados têm o mesmo valor.

Inequality(XamlMember, XamlMember)

Determina se dois objetos XamlMember especificados têm valores diferentes.

Aplica-se a

Confira também