Compartilhar via


XamlMember Classe

Definição

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

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 chamando 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 das APIs de Serviços XAML do .NET Framework e da XamlMember API, use o contexto de esquema XAML padrão. O contexto de esquema XAML padrão para os Serviços XAML do .NET Framework usa o suporte CLR para o sistema de tipos. Isso permite que os leitores XAML e os gravadores XAML trabalhem com qualquer tipo ou membro definido ou disponível para o CLR e suas técnicas de reflexão.

ApIs lookup* 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 ou XamlMember classes derivadas existentes lendo a documentação dos métodos relevantes Lookup* .

A finalidade dos Lookup* métodos é fornecer uma técnica de extensão do sistema de tipo XAML que incorpora a XamlMember classe base. Ao derivar e XamlMember 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 backup ou tecnologia. Você também pode usar um contexto de esquema XAML fornecido nesse esquema e ainda retornar os resultados desejados.

Como exemplo, considere a XamlMember propriedade IsWritePublic. Essa propriedade informa aos chamadores que operações como o uso de uma XamlWriter 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 tipo XAML depende do sistema de tipos CLR. No entanto, você pode remover essa dependência para o relatório do sistema de IsWritePublic tipo XAML substituindo a API LookupIsWritePublic. Em sua substituição, você pode usar outras determinações, como metadados específicos à 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.

Construção de XamlMember sem contexto de esquema XAML

A maioria dos construtores de XamlMember requer uma XamlSchemaContext como parte de sua inicialização. Também XamlSchemaContext é necessário para muitas operações internas XamlSchemaContext , como a obtenção de informações que estão sendo encaminhadas do tipo de backup. 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 XamlMember(String, XamlType, Boolean)específico, 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 envolva XamlObjectWriter, esse membro não pode ser gravado em um grafo de objeto. Usando a implementação de serviços XAML do .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 valor que tenha um valor true para IsUnknown o qual, a menos que sua implementação possa lidar com as exceções ou você tenha outras XamlObjectWritermaneiras de ajustar o XamlObjectWriter comportamento. Por exemplo, um ou mais dos seguintes itens podem ser verdadeiros para sua implementação:

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

Construtores

Nome Description
XamlMember(EventInfo, XamlSchemaContext, XamlMemberInvoker)

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

XamlMember(EventInfo, XamlSchemaContext)

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

XamlMember(PropertyInfo, XamlSchemaContext, XamlMemberInvoker)

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

XamlMember(PropertyInfo, XamlSchemaContext)

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

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

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

XamlMember(String, MethodInfo, MethodInfo, XamlSchemaContext)

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

XamlMember(String, MethodInfo, XamlSchemaContext, XamlMemberInvoker)

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

XamlMember(String, MethodInfo, XamlSchemaContext)

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

XamlMember(String, XamlType, Boolean)

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

Propriedades

Nome Description
DeclaringType

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

DeferringLoader

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

DependsOn

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

Invoker

Obtém a XamlMemberInvoker implementação associada a isso XamlMember.

IsAmbient

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

IsAttachable

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

IsDirective

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

IsEvent

Obtém um valor que indica se isso XamlMember representa um membro do evento.

IsNameValid

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

IsReadOnly

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

IsReadPublic

Obtém um valor que indica se isso XamlMember representa um membro com um acessador público get que pode ser chamado.

IsUnknown

Obtém um valor que indica se o membro não é resolvível pelo sistema de backup usado para resolução de tipo e membro.

IsWriteOnly

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

IsWritePublic

Obtém um valor que indica se isso XamlMember representa um membro que tem um acessador público set que pode ser chamado.

MarkupExtensionBracketCharacters

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

Name

Obtém a cadeia xamlName de caracteres de nome que declara isso XamlMember.

PreferredXamlNamespace

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

SerializationVisibility

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

TargetType

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

Type

Obtém o XamlType tipo usado pelo membro.

TypeConverter

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

UnderlyingMember

Obtém o sistema MemberInfo de tipo CLR que está disponível para um membro que é construído por PropertyInfo, MethodInfoou EventInfo.

ValueSerializer

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

Métodos

Nome Description
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 XamlValueConverter<TConverterBase> objeto, que é usado para o carregamento adiado de objetos declarados XAML.

LookupDependsOn()

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

LookupInvoker()

Retorna um XamlMemberInvoker que está associado a isso XamlMember.

LookupIsAmbient()

Retorna se isso XamlMember é relatado como uma propriedade ambiente.

LookupIsEvent()

Retorna se isso XamlMember representa um evento.

LookupIsReadOnly()

Retorna se isso XamlMember representa uma propriedade somente leitura pretendida.

LookupIsReadPublic()

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

LookupIsUnknown()

Retorna se isso XamlMember representa um membro que não é resolvível pelo sistema de backup usado para resolução de tipo e membro.

LookupIsWriteOnly()

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

LookupIsWritePublic()

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

LookupMarkupExtensionBracketCharacters()

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

LookupTargetType()

Retorna o XamlType tipo em que o XamlMember pode existir.

LookupType()

Retorna o XamlType tipo usado pelo membro.

LookupTypeConverter()

Retorna uma implementação de conversor de tipo associada a isso XamlMember.

LookupUnderlyingGetter()

Retorna um get acessador associado a isso XamlMember.

LookupUnderlyingMember()

Retorna um sistema MemberInfo de tipo CLR associado a esse XamlMember.

LookupUnderlyingSetter()

Retorna um set acessador associado a isso XamlMember.

LookupValueSerializer()

Retorna uma implementação de serializador de valor associada a isso XamlMember.

MemberwiseClone()

Cria uma cópia superficial do Objectatual.

(Herdado de Object)
ToString()

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

Operadores

Nome Description
Equality(XamlMember, XamlMember)

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

Inequality(XamlMember, XamlMember)

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

Aplica-se a

Confira também