Classe BestFitMappingAttribute
Dica
The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.
Controla se os caracteres Unicode são convertidos em caracteres ANSI correspondentes mais próximos.
Namespace: System.Runtime.InteropServices
Assembly: mscorlib (em mscorlib.dll)
Hierarquia de Herança
System.Object
System.Attribute
System.Runtime.InteropServices.BestFitMappingAttribute
Sintaxe
[AttributeUsageAttribute(AttributeTargets.Assembly | AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Interface,
Inherited = false)]
[ComVisibleAttribute(true)]
public sealed class BestFitMappingAttribute : Attribute
[AttributeUsageAttribute(AttributeTargets::Assembly | AttributeTargets::Class | AttributeTargets::Struct | AttributeTargets::Interface,
Inherited = false)]
[ComVisibleAttribute(true)]
public ref class BestFitMappingAttribute sealed : Attribute
[<Sealed>]
[<AttributeUsageAttribute(AttributeTargets.Assembly | AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Interface,
Inherited = false)>]
[<ComVisibleAttribute(true)>]
type BestFitMappingAttribute =
class
inherit Attribute
end
<AttributeUsageAttribute(AttributeTargets.Assembly Or AttributeTargets.Class Or AttributeTargets.Struct Or AttributeTargets.Interface,
Inherited := False)>
<ComVisibleAttribute(True)>
Public NotInheritable Class BestFitMappingAttribute
Inherits Attribute
Construtores
Nome | Descrição | |
---|---|---|
BestFitMappingAttribute(Boolean) | Inicializa uma nova instância da classe BestFitMappingAttribute definida com o valor da propriedade BestFitMapping. |
Propriedades
Nome | Descrição | |
---|---|---|
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
Nome | Descrição | |
---|---|---|
Equals(Object) | Esta API dá suporte à infraestrutura produto e não se destina a ser usada diretamente do seu código. Retorna um valor que indica se essa instância é igual a um objeto especificado.(Herdado de Attribute.) |
|
GetHashCode() | Retorna o código hash para essa instância.(Herdado de Attribute.) |
|
GetType() | ||
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.) |
|
ToString() | Retorna uma cadeia de caracteres que representa o objeto atual.(Herdado de Object.) |
Campos
Nome | Descrição | |
---|---|---|
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. |
Implementações Explícitas da Interface
Nome | Descrição | |
---|---|---|
_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.) |
Comentários
Você pode aplicar esse atributo para um assembly, interface, classe ou estrutura.
Por padrão, o common language runtime converte em caracteres ANSI que qualquer gerenciado caracteres Unicode passados para um método não gerenciado em execução no Windows 98 ou Windows Me. Mapeamento de melhor ajuste permite que o marshaler interoperabilidade selecionar um caractere de fechamento correspondente quando não existe nenhuma correspondência exata. Por exemplo, o marshaler converte o caractere Unicode copyright c para não gerenciados métodos que aceitam caracteres ANSI.
Aviso
Alguns caracteres não têm uma representação de melhor ajuste; Esses caracteres são chamados não mapeável. Caracteres não mapeável geralmente são convertidos para o padrão '?' Caractere ANSI. Determinados caracteres Unicode são convertidos em caracteres perigosos, como a barra invertida ' \' caractere, que pode alterar inadvertidamente um caminho.
BestFitMappingAttributefornece dois parâmetros para controlar aspectos de mapeamento de melhor ajuste. Você pode usar o primeiro parâmetro para alternar o mapeamento de melhor ajuste e desativar. O valor padrão é true, que permite o mapeamento de melhor ajuste no assembly, interface e níveis de classe. Um atributo aplicado a uma interface ou classe substitui um atributo de nível de assembly. Da mesma forma, você pode habilitar ou desabilitar o mapeamento de melhor ajuste para chamadas de invocação de plataforma usando o DllImportAttribute.BestFitMapping campo. Um valor definido pela plataforma invocar campo substitui todos os níveis de BestFitMappingAttribute.
Você pode usar o segundo parâmetro para gerar uma exceção não mapeável caracteres de controle. O valor padrão para o ThrowOnUnmappableChar campo é false, o tempo de execução de tempo que desativa lançar uma exceção encontra um caractere Unicode que deve ser convertido para o '?' Caractere ANSI. Mesmo se o mapeamento de melhor ajuste é true, caracteres não mapeável 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. Esta combinação de configurações de parâmetro ativa o mapeamento de melhor ajuste desativado, mas permite que o mecanismo geradoras de exceções como uma precaução de segurança.
Aviso
Você não pode alterar os valores padrão fornecidos pelo BestFitMappingAttribute ao passar uma matriz gerenciada cujos elementos é caracteres ANSI ou LPSTRs para uma matriz segura não gerenciada. Mapeamento de melhor ajuste está sempre habilitado e nenhuma exceção pode ser lançada. Lembre-se de que essa combinação pode comprometer o modelo de segurança.
Exemplos
O exemplo a seguir mostra como desabilitar o mapeamento de ajuste recomendado e lançar uma exceção durante a conversão de caracteres Unicode para o '?' Caractere ANSI. Configuração BestFitMappingAttribute parâmetros dessa maneira proporciona uma medida adicional de segurança.
[BestFitMapping(false, ThrowOnUnmappableChar = true)]
interface IMyInterface1
{
//Insert code here.
}
<BestFitMapping(False, ThrowOnUnmappableChar := True)> _
Interface IMyInterface1
'Insert code here.
End Interface
[BestFitMapping(false, ThrowOnUnmappableChar = true)]
interface class IMyInterface1
{
//Insert code here.
};
Informações de Versão
Plataforma Universal do Windows
Disponível desde 8
.NET Framework
Disponível desde 1.1
Biblioteca de Classes Portátil
Com suporte no: plataformas portáteis do .NET
Windows Phone
Disponível desde 8.1
Acesso thread-safe
Quaisquer membros estáticos públicos ( Compartilhado no Visual Basic) desse tipo são thread-safe. Não há garantia de que qualquer membro de instância seja thread-safe.
Confira Também
BestFitMapping
Namespace System.Runtime.InteropServices
marshaling de interoperabilidade
Retornar ao início