BestFitMappingAttribute Classe

Definizione

Controlla se i caratteri Unicode vengono convertiti nei caratteri ANSI corrispondenti più vicini.

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
Ereditarietà
BestFitMappingAttribute
Attributi

Esempio

Nell'esempio seguente viene illustrato come disabilitare il mapping di adattamento ottimale e generare un'eccezione per la conversione di caratteri Unicode in '?' Carattere ANSI. L'impostazione dei BestFitMappingAttribute parametri in questo modo fornisce una misura aggiuntiva di sicurezza.

[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

Commenti

È possibile applicare questo attributo a un assembly, un'interfaccia, una classe o una struttura.

Attenzione

Alcuni personaggi non dispongono di una rappresentazione più adatta; questi caratteri sono denominati non appappabili. I caratteri non verificabili vengono in genere convertiti nel valore predefinito '?' Carattere ANSI. Alcuni caratteri Unicode vengono convertiti in caratteri pericolosi, ad esempio il carattere barra rovesciata '\', che può inavvertitamente modificare un percorso.

BestFitMappingAttribute fornisce due parametri per controllare gli aspetti del mapping più appropriato. Usare il primo parametro per attivare e disattivare il mapping più appropriato. Il valore predefinito è true, che consente il mapping ottimale per l'assembly, l'interfaccia e i livelli di classe. Un attributo applicato a un'interfaccia o a una classe esegue l'override di un attributo a livello di assembly. È anche possibile abilitare o disabilitare il mapping più appropriato per le chiamate platform invoke usando il DllImportAttribute.BestFitMapping campo . Un valore impostato dal campo platform invoke esegue l'override di tutti i livelli di BestFitMappingAttribute.

È possibile usare il secondo parametro per controllare la generazione di un'eccezione in caratteri non modificabili. Il valore predefinito per il ThrowOnUnmappableChar campo è false, che disabilita la generazione di un'eccezione ogni volta che il runtime rileva un carattere Unicode che deve essere convertito in '?' Carattere ANSI. Anche se il mapping più appropriato è true, i caratteri non validi generano un'eccezione quando il ThrowOnUnmappableChar campo è true. Per rafforzare la sicurezza, è possibile attivare o disattivare il primo parametro su false e il secondo parametro su true. Questa combinazione di impostazioni dei parametri disattiva il mapping ottimale, ma abilita il meccanismo di generazione di eccezioni come precauzione di sicurezza.

Attenzione

Non è possibile modificare i valori predefiniti forniti da BestFitMappingAttribute quando si passa una matrice gestita i cui elementi sono caratteri ANSI o LPSTR a una matrice sicura non gestita. Il mapping più appropriato è sempre abilitato e non è possibile generare eccezioni. Tenere presente che questa combinazione può compromettere il modello di sicurezza.

Costruttori

BestFitMappingAttribute(Boolean)

Inizializza una nuova istanza della classe BestFitMappingAttribute impostata sul valore della proprietà BestFitMapping.

Campi

ThrowOnUnmappableChar

Abilita o disabilita la generazione di un'eccezione su un carattere Unicode di cui non è possibile eseguire il mapping convertito in un carattere ANSI "?".

Proprietà

BestFitMapping

Ottiene il comportamento di mapping più appropriato quando si convertono i caratteri Unicode in caratteri ANSI.

TypeId

Quando è implementata in una classe derivata, ottiene un identificatore univoco della classe Attribute.

(Ereditato da Attribute)

Metodi

Equals(Object)

Restituisce un valore che indica se questa istanza è uguale a un oggetto specificato.

(Ereditato da Attribute)
GetHashCode()

Restituisce il codice hash per l'istanza.

(Ereditato da Attribute)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
IsDefaultAttribute()

In caso di override in una classe derivata, indica se il valore di questa istanza è il valore predefinito per la classe derivata.

(Ereditato da Attribute)
Match(Object)

Quando è sottoposto a override in una classe derivata, restituisce un valore che indica se questa istanza equivale a un oggetto specificato.

(Ereditato da Attribute)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

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

Esegue il mapping di un set di nomi a un set corrispondente di ID dispatch.

(Ereditato da Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Recupera le informazioni sul tipo relative a un oggetto, che possono essere usate per ottenere informazioni sul tipo relative a un'interfaccia.

(Ereditato da Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Recupera il numero delle interfacce di informazioni sul tipo fornite da un oggetto (0 o 1).

(Ereditato da Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fornisce l'accesso a proprietà e metodi esposti da un oggetto.

(Ereditato da Attribute)

Si applica a

Vedi anche