Atributos CLR relacionados ao XAML para tipos personalizados e bibliotecas

Este tópico descreve os atributos comuns de runtime (CLR) de idioma definidas pelo.NET Framework serviços XAML. Ela também descreve os outros atributos CLR que são definidos na.NET Framework que tiver um cenário relacionados ao XAML para o aplicativo para montagens ou tipos. A atribuição de assemblies, tipos ou membros com esses atributos do CLR fornece relacionadas a seus tipos de informações do sistema de tipo XAML. São fornecidas informações para qualquer consumidor XAML que usa.NET Framework XAML Services para processamento de fluxo XAML nó diretamente ou através dos leitores XAML dedicados e gravadores XAML.

Atributos CLR relacionados ao XAML para tipos personalizados e membros personalizada

Usando os atributos CLR implica que você estiver usando o CLR geral para definir seus tipos, caso contrário, esses atributos não estão disponíveis. Se você usar o CLR para definir o tipo de backup, o contexto de esquema XAML padrão usado pelo.Gravadores de XAML XAML de serviços do NET Framework podem ler a atribuição do CLR por meio de reflexão contra fazendo assemblies.

As seções a seguir descrevem os atributos de XAML que você pode aplicar para tipos personalizados ou de membros personalizados. Cada atributo CLR comunica as informações relevantes para um sistema de tipos XAML. No caminho de carga, as informações de atribuída ou ajudam o leitor XAML formam um fluxo de nó XAML válido ou ajuda o gravador XAML produzir um gráfico de objeto válido. Em Salvar caminho, as informações de atribuída uma ajuda o leitor XAML formam um fluxo de nó XAML válido reconstitui informações do sistema de tipo XAML; ou ele declara as dicas de serialização ou requisitos para o gravador XAML ou outros consumidores XAML.

AmbientAttribute

Documentação de referência: AmbientAttribute

Se aplica a: Classe, a propriedade, ou get os membros do acessador que suportam propriedades anexadas.

Argumentos: None

AmbientAttributeindica que a propriedade ou todas as propriedades que levam o tipo atribuído, devem ser interpretadas sob o conceito de propriedade de ambiente em XAML. O conceito de temperatura ambiente está relacionado como processadores XAML determinam o tipo de proprietários de membros. Uma propriedade de ambiente é uma propriedade onde o valor é esperado para estar disponível no contexto do analisador, ao criar um gráfico de objeto, mas onde a pesquisa de membro de tipo típica está suspensa para o nó XAML imediato, definir o que está sendo criado.

O conceito de ambiente pode ser aplicado aos membros anexável, o que não são representados como propriedades em termos de como define a atribuição do CLR AttributeTargets. O uso de atribuição do método deve ser aplicado somente no caso de um get acessador que suporta o uso anexável para XAML.

ConstructorArgumentAttribute

Documentação de referência: ConstructorArgumentAttribute

Se aplica a: Class

Argumentos: Uma seqüência de caracteres que especifica o nome da propriedade que corresponde ao argumento de construtor único.

ConstructorArgumentAttributeEspecifica que um objeto pode ser inicializado usando uma sintaxe do construtor não-padrão e que uma propriedade do nome especificado fornece informações de construção. Essa informação é principalmente para a serialização de XAML. For more information, see ConstructorArgumentAttribute.

ContentPropertyAttribute

Documentação de referência: ContentPropertyAttribute

Se aplica a: Class

Argumentos: Uma seqüência de caracteres que especifica o nome de um membro do tipo atribuído.

ContentPropertyAttributeindica que a propriedade como chamado pelo argumento deve servir como a propriedade content de XAML para esse tipo. A definição da propriedade content de XAML herda a todos os tipos derivados que pode ser atribuídos a definição de tipo. Você pode substituir a definição de um tipo específico de derivada aplicando ContentPropertyAttribute sobre o tipo derivado específico.

Para a propriedade que serve como a propriedade content de XAML, a marcação para a propriedade de elemento de propriedade pode ser omitido no uso do XAML. Normalmente, você pode designar propriedades de conteúdo XAML que promovem uma marcação de XAML simplificada para os modelos de conteúdo e a contenção. Porque somente um membro pode ser designado como a propriedade content de XAML, às vezes têm design fazer escolhas em relação ao qual um contêiner de várias propriedades de um tipo devem ser designadas como a propriedade de conteúdo XAML. Propriedades do recipiente devem ser usadas com elementos de propriedade explícita.

No fluxo de XAML de nó, propriedades de conteúdo XAML ainda produzem StartMember e EndMember nós, usando o nome da propriedade para o XamlMember. Para determinar se um membro é a propriedade content de XAML, examine o XamlType o valor da StartObject posicionar e obtenha o valor de ContentProperty.

ContentWrapperAttribute

Documentação de referência: ContentWrapperAttribute

Se aplica a: Classe, especificamente os tipos de coleção.

Argumentos: A Type que especifica o tipo a ser usado como o tipo de conteúdo de wrapper para o conteúdo externo.

ContentWrapperAttributeEspecifica um ou mais tipos do tipo de coleção associada que será usado para encapsular conteúdo externo. Conteúdo externo refere-se aos casos em que as restrições do sistema de tipo no tipo da propriedade content não captura todos os casos possíveis de conteúdo que dará suporte a utilização XAML para o tipo de proprietário. Por exemplo, o XAML suporte para o conteúdo de um determinado tipo pode oferecer suporte a seqüências de caracteres em um genérico com rigidez de tipos Collection<T>. Conteúdo wrappers são úteis para migrar preexistente convenções de marcação para a concepção do XAML dos valores pode ser atribuídos para coleções, como, por exemplo, modelos de conteúdo relacionados a texto migrando.

Para especificar mais de um tipo de conteúdo do wrapper, aplica o atributo várias vezes.

DependsOnAttribute

Documentação de referência: DependsOnAttribute

Se aplica a: Property

Argumentos: Uma seqüência de caracteres que especifica o nome de outro membro do tipo atribuído.

DependsOnAttributeindica que a propriedade atribuída depende do valor da propriedade de outro. Aplicar esse atributo para uma definição de propriedade garante que as propriedades dependentes são processadas primeiro escrito de objeto do XAML. Usos de DependsOnAttribute especificar os casos excepcionais de propriedades em tipos de análise de um pedido específico onde deve ser seguido para criação de objeto válido.

Você pode aplicar várias DependsOnAttribute casos em uma definição de propriedade.

MarkupExtensionReturnTypeAttribute

Documentação de referência: MarkupExtensionReturnTypeAttribute

Se aplica a: A classe, que é esperado para ser um MarkupExtension derivado do tipo.

Argumentos: A Type que especifica o tipo mais preciso esperar como o ProvideValue o resultado do atribuída MarkupExtension.

For more information, see Extensões de marcação de visão geral do XAML.

NameScopePropertyAttribute

Documentação de referência: NameScopePropertyAttribute

Se aplica a: Class

Argumentos: Oferece suporte a dois formulários de atribuição:

  • Uma seqüência de caracteres que especifica o nome de uma propriedade do tipo atribuída.

  • Uma seqüência de caracteres que especifica o nome de uma propriedade e um Type para o tipo que define a propriedade nomeada. Este formulário é para especificar um membro anexável como a propriedade namescope do XAML.

NameScopePropertyAttributeEspecifica uma propriedade que fornece o valor de namescope XAML para a classe atribuída. A propriedade namescope do XAML é esperada para fazer referência a um objeto que implementa INameScope e mantém o namescope real do XAML, o seu armazenamento e o comportamento.

RuntimeNamePropertyAttribute

Documentação de referência: RuntimeNamePropertyAttribute

Se aplica a: Class

Argumentos: Uma seqüência de caracteres que especifica o nome da propriedade name de tempo de execução do tipo atribuída.

RuntimeNamePropertyAttributerelatórios de uma propriedade do tipo atribuída que mapeia para o XAML x: nome de diretiva. A propriedade deve ser do tipo String e devem ser leitura / gravação.

Herda a definição de todos os tipos derivados que pode ser atribuídos a definição de tipo. Você pode substituir a definição de um tipo específico de derivada aplicando RuntimeNamePropertyAttribute sobre o tipo derivado específico.

TrimSurroundingWhitespaceAttribute

Documentação de referência: TrimSurroundingWhitespaceAttribute

Se aplica a: Types

Argumentos: Nenhum.

TrimSurroundingWhitespaceAttributeé aplicada aos tipos específicos que podem ser exibidos como os elementos filho dentro do conteúdo significativo de espaço em branco (conteúdo mantido por um conjunto que possui WhitespaceSignificantCollectionAttribute). TrimSurroundingWhitespaceAttributeé principalmente relevante para salvar o caminho, mas está disponível no sistema de tipos XAML no caminho de carga, examinando XamlType.TrimSurroundingWhitespace. For more information, see Processamento de Espaço em branco em XAML.

TypeConverterAttribute

Documentação de referência: TypeConverterAttribute

Se aplica a: Classe, método e propriedade (o único caso de método válido de XAML é uma get acessador oferece suporte a um membro anexável).

Argumentos: The Type of the TypeConverter.

TypeConverterAttributeno XAML contexto faz referência a um personalizado TypeConverter. Isso TypeConverter fornece o comportamento de conversão de tipo para tipos personalizados, ou membros do tipo.

Você pode aplicar o TypeConverterAttribute atributo para seu tipo, fazendo referência a sua implementação de conversor de tipo. Você pode definir os conversores de tipo para o XAML em classes, estruturas ou interfaces. Você não precisará fornecer conversão de tipo de enumerações, para que a conversão está habilitado nativamente.

O conversor de tipo deve ser capaz de converter uma seqüência que é usado para atributos ou texto de inicialização na marcação, no seu tipo de destino pretendido. For more information, see TypeConverters and XAML.

Em vez de aplicar a todos os valores de um tipo, um comportamento de conversor de tipo para o XAML pode ser estabelecido em uma propriedade específica. Nesse caso, você aplicar TypeConverterAttribute à definição da propriedade (a definição externa, não específicos do get e set definições).

Um comportamento de conversor de tipo para uso do XAML de um membro anexável personalizado pode ser atribuído aplicando TypeConverterAttribute para o get acessador do método que suporta o uso XAML.

Semelhante a TypeConverter, TypeConverterAttribute existiam na.NET Framework antes para a existência de XAML e o modelo de conversor de tipo atuou outros fins. Para referenciar e usar TypeConverterAttribute, você deve qualificá-lo totalmente ou fornecer um using a instrução para System.ComponentModel. Você também deve incluir a montagem do sistema em seu projeto.

UidPropertyAttribute

Documentação de referência: UidPropertyAttribute

Se aplica a: Class

Argumentos: Uma seqüência de caracteres que referencia a propriedade relevante por nome.

Indica que os aliases de propriedade de uma classe CLR a x: Uid diretiva.

UsableDuringInitializationAttribute

Documentação de referência: UsableDuringInitializationAttribute

Se aplica a: Class

Argumentos: Um booleano. Se usado para a finalidade pretendida do atributo, isso sempre deve ser especificado como true.

Indica se este tipo é construído de cima para baixo durante a criação de gráfico de objeto do XAML. Esse é um conceito avançado, que está provavelmente relacionado à definição de modelo de programação. For more information, see UsableDuringInitializationAttribute.

ValueSerializerAttribute

Documentação de referência: ValueSerializerAttribute

Se aplica a: Classe, método e propriedade (o único caso de método válido de XAML é uma get acessador oferece suporte a um membro anexável).

Argumentos: A Type que especifica a classe de suporte do serializador de valor para usar ao serializar todas as propriedades do tipo atribuída, ou a específica atribuída propriedade.

ValueSerializerEspecifica uma classe de serialização do valor que requer mais estado e o contexto de um TypeConverter faz. ValueSerializerpode ser associado a um membro anexável aplicando o ValueSerializerAttribute atributo estática get o método do acessador para o membro anexável. A serialização de valor também é aplicável para estruturas, interfaces e enumerações, mas não para delegados.

WhitespaceSignificantCollectionAttribute

Documentação de referência: WhitespaceSignificantCollectionAttribute

Se aplica a: Classe, especificamente os tipos de coleção que são esperados para hospedar conteúdo misto, onde o espaço em branco ao redor dos elementos do objeto pode ser significativo para a representação de interface do usuário.

Argumentos: Nenhum.

WhitespaceSignificantCollectionAttributeindica que um tipo de coleção deve ser processado como significativa de espaço em branco por um processador XAML, o que influencia a construção de nós de valor do fluxo de nó XAML dentro da coleção. For more information, see Processamento de Espaço em branco em XAML.

XamlDeferLoadAttribute

Documentação de referência: XamlDeferLoadAttribute

Se aplica a: Classe, a propriedade.

Argumentos: Atribuição de suporta dois tipos, como seqüências de formulários ou tipos como Type. See XamlDeferLoadAttribute.

Indica que uma classe ou propriedade tem um uso adiado de carga para o XAML (como um comportamento de modelo) e a classe que permite que o comportamento adiando e seu tipo de destino/conteúdo de relatórios.

XamlSetMarkupExtensionAttribute

Documentação de referência: XamlSetMarkupExtensionAttribute

Se aplica a: Class

Argumentos: Nomeia o retorno de chamada.

Indica que uma classe pode usar uma extensão de marcação para fornecer um valor para uma ou mais das suas propriedades e faz referência a um manipulador de um gravador XAML deve chamar antes de executar uma operação de conjunto de extensão de marcação em qualquer propriedade da classe.

XamlSetTypeConverterAttribute

Documentação de referência: XamlSetTypeConverterAttribute

Se aplica a: Class

Argumentos: Nomeia o retorno de chamada.

Indica que uma classe pode usar um conversor de tipo para fornecer um valor para uma ou mais das suas propriedades e faz referência a um manipulador de um gravador XAML deve chamar antes de executar uma operação de conjunto de conversor de tipo em qualquer propriedade da classe.

XmlLangPropertyAttribute

Documentação de referência: XmlLangPropertyAttribute

Se aplica a: Class

Argumentos: Uma seqüência de caracteres que especifica o nome da propriedade alias para xml:lang no tipo atribuída.

XmlLangPropertyAttributerelatórios de uma propriedade do tipo atribuída que mapeia para o XML lang diretiva. A propriedade não é necessariamente do tipo String, mas pode ser atribuído de uma seqüência de caracteres (poderia ser realizada associando um conversor de tipo com o tipo da propriedade, ou com a propriedade específica). A propriedade deve ser de leitura/gravação.

O cenário para o mapeamento de xml:lang para que um modelo de objeto de tempo de execução tem acesso às informações de idioma especificado em XML sem especificamente processamento com um XMLDOM.

Herda a definição de todos os tipos derivados que pode ser atribuídos a definição de tipo. Você pode substituir a definição de um tipo específico de derivada aplicando XmlLangPropertyAttribute em específicos do tipo derivado, embora esse seja um cenário incomum.

XAML CLR atributos no nível do Assembly

As seções a seguir descrevem os atributos de XAML que não são aplicados a tipos ou definições de membro, mas em vez disso, são aplicados aos assemblies. Esses atributos são pertinentes a meta geral da definição de uma biblioteca de tipos personalizados para usar em XAML. Alguns dos atributos não necessariamente influenciam o fluxo de nó XAML diretamente, mas são passados no fluxo de nó para outros consumidores de usar. Os consumidores para obter as informações incluem ambientes de design ou processos de serialização que precisam de informações do namespace XAML e prefixo informações associadas. Um contexto de esquema XAML (incluindo o.O padrão de serviços do NET Framework XAML) também usa essas informações.

XmlnsCompatibleWithAttribute

Documentação de referência: XmlnsCompatibleWithAttribute

Argumentos:

  • Uma seqüência de caracteres que especifica o identificador do namespace XAML para subsume.

  • Uma seqüência de caracteres que especifica o identificador do namespace XAML que pode subsume o namespace XAML do argumento anterior.

XmlnsCompatibleWithAttributeEspecifica que um namespace XAML pode ser incluído em outro namespace XAML. Normalmente, o namespace XAML subsuming é indicado no definidos anteriormente XmlnsDefinitionAttribute. Essa técnica pode ser usado para controle de versão de um vocabulário XAML em uma biblioteca e torná-lo compatível com a marcação definida anteriormente contra o vocabulário de uma versão anterior.

XmlnsDefinitionAttribute

Documentação de referência: XmlnsDefinitionAttribute

Argumentos:

  • Uma seqüência de caracteres que especifica o identificador do namespace XAML para definir.

  • Uma seqüência de caracteres que nomeia um namespace CLR. O namespace CLR deve definir os tipos públicos em seu assembly e pelo menos um dos tipos de namespace CLR deve ser destinado ao uso do XAML.

XmlnsDefinitionAttributeEspecifica um mapeamento em uma base por assembly entre um namespace XAML e um namespace CLR, que é usado para resolução de tipo por um gravador de objeto XAML ou contexto de esquema XAML.

Mais de um XmlnsDefinitionAttribute pode ser aplicado a um assembly. Isso pode ser feito para qualquer combinação dos seguintes motivos:

  • O design da biblioteca contém vários namespaces CLR para organização lógica de acesso de API de tempo de execução; No entanto, você deseja que todos os tipos desses namespaces para ser usada para a XAML referenciando o mesmo namespace XAML. Nesse caso, você aplicar várias XmlnsDefinitionAttribute atributos usando o mesmo XmlNamespace valor mas diferentes ClrNamespace valores. Isso é especialmente útil se você estiver definindo mapeamentos de namespace XAML que seu aplicativo ou framework pretende ser namespace XAML padrão no uso comum.

  • O design da biblioteca contém vários namespaces CLR e você deseja uma separação de namespace XAML deliberada entre os usos de tipos em namespaces esses CLR.

  • Você define um namespace CLR no assembly e deseja que ele possa ser acessado através de mais de um namespace XAML. Essa situação ocorre quando o suporte a vários vocabulários com a mesma base de código.

  • Você pode definir o suporte ao idioma do XAML em um ou mais namespaces do CLR. Nesses casos, o XmlNamespace o valor deve ser https://schemas.microsoft.com/winfx/2006/xaml.

XmlnsPrefixAttribute

Documentação de referência: XmlnsPrefixAttribute

Argumentos:

  • Uma seqüência de caracteres que especifica o identificador de um namespace XAML.

  • Uma seqüência de caracteres que especifica um prefixo recomendado.

XmlnsDefinitionAttributeEspecifica um prefixo recomendado para usar um namespace XAML. O prefixo é útil ao escrever elementos e atributos em um arquivo XAML que é serializado pelo.NET Framework XAML Services XamlXmlWriter, ou quando uma biblioteca de implementação de XAML interage com um ambiente de design que tem o XAML editando recursos.

Mais de um XmlnsPrefixAttribute pode ser aplicado a um assembly. Isso pode ser feito para qualquer combinação dos seguintes motivos:

  • Seu conjunto define tipos de mais de um namespace XAML. Nesse caso, você deve definir valores de prefixo diferente para cada namespace XAML.

  • Suporte a vários vocabulários e você usar prefixos diferentes para cada vocabulário e namespace XAML.

  • Definir o suporte de linguagem XAML no assembly e ter uma XmlnsDefinitionAttribute para https://schemas.microsoft.com/winfx/2006/xaml. Nesse caso, você normalmente deve promover o prefixo x.

Observação

.NET Framework XAML Services também define o atributo de XAML RootNamespaceAttribute.Este é um atributo de nível de assembly para suporte de sistema do projeto e não é relevante para tipos personalizados de XAML.

Consulte também

Referência

Attribute

Outros recursos

A definição de tipos personalizados para uso com o.Serviços XAML do NET Framework