Condividi tramite


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 adattabilità ottimale e generare un'eccezione sulla conversione di caratteri Unicode in '?' Carattere ANSI. L'impostazione BestFitMappingAttribute dei parametri in questo modo fornisce una misura aggiunta 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, a un'interfaccia, a una classe o a una struttura.

Attenzione

Alcuni caratteri non hanno una rappresentazione ottimale; questi caratteri sono chiamati non validi. I caratteri non validi vengono in genere convertiti nel valore predefinito '?' Carattere ANSI. Alcuni caratteri Unicode vengono convertiti in caratteri pericolosi, ad esempio la barra rovesciata '\', che può modificare inavvertitamente un percorso.

BestFitMappingAttribute fornisce due parametri per controllare gli aspetti del mapping ottimale. Si usa il primo parametro per attivare e disattivare il mapping ottimale. Il valore predefinito è true, che consente il mapping ottimale nell'assembly, nell'interfaccia e nei 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 ottimale per le chiamate della piattaforma richiamando tramite il DllImportAttribute.BestFitMapping campo. Un valore impostato dal campo invoke della piattaforma esegue l'override di tutti i livelli di BestFitMappingAttribute.

È possibile usare il secondo parametro per controllare la generazione di un'eccezione su caratteri non validi. 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 ottimale è true, i caratteri non validi generano un'eccezione quando il ThrowOnUnmappableChar campo è true. Per restringere la sicurezza, è possibile 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 delle 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 ottimale è 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