BestFitMappingAttribute Classe

Definição

Controla se os caracteres Unicode são convertidos em caracteres ANSI correspondentes mais próximos.

public ref class BestFitMappingAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Interface | System.AttributeTargets.Struct, Inherited=false)]
public sealed class BestFitMappingAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Interface | System.AttributeTargets.Struct, Inherited=false)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class BestFitMappingAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Interface | System.AttributeTargets.Struct, Inherited=false)>]
type BestFitMappingAttribute = class
    inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Interface | System.AttributeTargets.Struct, Inherited=false)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type BestFitMappingAttribute = class
    inherit Attribute
Public NotInheritable Class BestFitMappingAttribute
Inherits Attribute
Herança
BestFitMappingAttribute
Atributos

Exemplos

O exemplo a seguir mostra como desabilitar o melhor mapeamento de ajuste e gerar uma exceção na conversão de caracteres Unicode para o '?' Caractere ANSI. Definir BestFitMappingAttribute parâmetros dessa maneira fornece uma medida adicional de segurança.

[BestFitMapping(false, ThrowOnUnmappableChar = true)]
interface class IMyInterface1
{
     //Insert code here.
};
[BestFitMapping(false, ThrowOnUnmappableChar = true)]
interface IMyInterface1
{
     //Insert code here.
}
<BestFitMapping(False, ThrowOnUnmappableChar := True)> _
Interface IMyInterface1
     'Insert code here.
End Interface

Comentários

Você pode aplicar esse atributo a um assembly, interface, classe ou estrutura.

Cuidado

Alguns caracteres não têm uma representação de melhor ajuste; esses caracteres são chamados de inaplicativos. Caracteres não aplicativos geralmente são convertidos no padrão '?' Caractere ANSI. Determinados caracteres Unicode são convertidos em caracteres perigosos, como o caractere de barra invertida '\', que pode alterar inadvertidamente um caminho.

BestFitMappingAttribute fornece dois parâmetros para controlar aspectos do mapeamento de melhor ajuste. Você usa o primeiro parâmetro para ativar e desativar o mapeamento de melhor ajuste. O valor padrão é true, que permite o mapeamento de melhor ajuste nos níveis de assembly, interface e classe. Um atributo aplicado a uma interface ou classe substitui um atributo no nível do assembly. Da mesma forma, você pode habilitar ou desabilitar o mapeamento mais adequado para chamadas de invocação de plataforma usando o DllImportAttribute.BestFitMapping campo . Um valor definido pelo campo de invocação de plataforma substitui todos os níveis de BestFitMappingAttribute.

Você pode usar o segundo parâmetro para controlar a geração de uma exceção em caracteres inaplicativos. O valor padrão para o ThrowOnUnmappableChar campo é false, que desabilita a geração de uma exceção sempre que o runtime encontra um caractere Unicode que precisa ser convertido em '?' Caractere ANSI. Mesmo que o mapeamento de melhor ajuste seja true, caracteres inaplicativos geram uma exceção quando o ThrowOnUnmappableChar campo é true. Para reforçar a segurança, você pode alternar o primeiro parâmetro para false e o segundo parâmetro para true. Essa combinação de configurações de parâmetro desativa o mapeamento de melhor ajuste, mas habilita o mecanismo de lançamento de exceções como uma precaução de segurança.

Cuidado

Não é possível alterar os valores padrão fornecidos por BestFitMappingAttribute ao passar uma matriz gerenciada cujos elementos são ANSI Chars ou LPSTRs para uma matriz segura não gerenciada. O mapeamento de melhor ajuste está sempre habilitado e nenhuma exceção pode ser gerada. Lembre-se de que essa combinação pode comprometer seu modelo de segurança.

Construtores

BestFitMappingAttribute(Boolean)

Inicializa uma nova instância da classe BestFitMappingAttribute definida com o valor da propriedade BestFitMapping.

Campos

ThrowOnUnmappableChar

Habilita ou desabilita a geração de uma exceção em um caractere Unicode não mapeável que é convertido em um caractere "?" ANSI.

Propriedades

BestFitMapping

Obtém o comportamento de mapeamento de melhor ajuste ao converter caracteres Unicode em caracteres ANSI.

TypeId

Quando implementado em uma classe derivada, obtém um identificador exclusivo para este Attribute.

(Herdado de Attribute)

Métodos

Equals(Object)

Retorna um valor que indica se essa instância é igual a um objeto especificado.

(Herdado de Attribute)
GetHashCode()

Retorna o código hash para a instância.

(Herdado de Attribute)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
IsDefaultAttribute()

Quando substituído em uma classe derivada, indica se o valor dessa instância é o valor padrão para a classe derivada.

(Herdado de Attribute)
Match(Object)

Quando substituído em uma classe derivada, retorna um valor que indica se essa instância é igual a um objeto especificado.

(Herdado de Attribute)
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)

Implantações explícitas de interface

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de expedição.

(Herdado de Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Recupera as informações de tipo para um objeto, que pode ser usado para obter as informações de tipo para uma interface.

(Herdado de Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Retorna o número de interfaces de informações do tipo que um objeto fornece (0 ou 1).

(Herdado de Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fornece acesso a propriedades e métodos expostos por um objeto.

(Herdado de Attribute)

Aplica-se a

Confira também