BestFitMappingAttribute Kelas

Definisi

Mengontrol apakah karakter Unicode dikonversi ke karakter ANSI yang paling cocok.

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
Warisan
BestFitMappingAttribute
Atribut

Contoh

Contoh berikut menunjukkan cara menonaktifkan pemetaan paling pas dan melemparkan pengecualian pada konversi karakter Unicode ke '?' Karakter ANSI. Mengatur BestFitMappingAttribute parameter dengan cara ini memberikan ukuran keamanan tambahan.

[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

Keterangan

Anda dapat menerapkan atribut ini ke rakitan, antarmuka, kelas, atau struktur.

Perhatian

Beberapa karakter tidak memiliki representasi yang paling cocok; karakter ini disebut tidak dapat dipetakan. Karakter yang tidak dapat dipetakan biasanya dikonversi ke default '?' Karakter ANSI. Karakter Unicode tertentu dikonversi ke karakter berbahaya, seperti karakter garis miring terbalik '\', yang secara tidak sengaja dapat mengubah jalur.

BestFitMappingAttribute menyediakan dua parameter untuk mengontrol aspek pemetaan yang paling sesuai. Anda menggunakan parameter pertama untuk mengaktifkan dan menonaktifkan pemetaan yang paling sesuai. Nilai defaultnya adalah true, yang memungkinkan pemetaan yang paling sesuai pada tingkat assembly, antarmuka, dan kelas. Atribut yang diterapkan ke antarmuka atau kelas mengambil alih atribut tingkat perakitan. Anda juga dapat mengaktifkan atau menonaktifkan pemetaan yang paling sesuai untuk panggilan pemanggilan platform dengan menggunakan DllImportAttribute.BestFitMapping bidang . Nilai yang ditetapkan oleh bidang pemanggilan platform mengambil alih semua tingkat .BestFitMappingAttribute

Anda dapat menggunakan parameter kedua untuk mengontrol pelemparan pengecualian pada karakter yang tidak dapat dipetakan. Nilai default untuk ThrowOnUnmappableChar bidang adalah false, yang menonaktifkan pelemparan pengecualian setiap kali runtime menemukan karakter Unicode yang harus dikonversi ke '?' Karakter ANSI. Bahkan jika pemetaan yang paling sesuai adalah true, karakter yang tidak dapat dipetakan menghasilkan pengecualian ketika ThrowOnUnmappableChar bidang adalah true. Untuk memperketat keamanan, Anda dapat mengalihkan parameter pertama ke false dan parameter kedua ke true. Kombinasi pengaturan parameter ini menonaktifkan pemetaan yang paling sesuai, tetapi memungkinkan mekanisme pelemparan pengecualian sebagai tindakan pencegahan keamanan.

Perhatian

Anda tidak dapat mengubah nilai default yang disediakan saat BestFitMappingAttribute meneruskan array terkelola yang elemennya adalah KARAKTER ANSI atau LPSTR ke array aman yang tidak dikelola. Pemetaan yang paling sesuai selalu diaktifkan dan tidak terkecuali dapat dilemparkan. Ketahuilah bahwa kombinasi ini dapat membahayakan model keamanan Anda.

Konstruktor

BestFitMappingAttribute(Boolean)

Menginisialisasi instans baru dari kelas yang BestFitMappingAttribute diatur ke nilai BestFitMapping properti .

Bidang

ThrowOnUnmappableChar

Mengaktifkan atau menonaktifkan pelemparan pengecualian pada karakter Unicode yang tidak dapat dipetakan yang dikonversi ke karakter ANSI '?'.

Properti

BestFitMapping

Mendapatkan perilaku pemetaan yang paling sesuai saat mengonversi karakter Unicode menjadi karakter ANSI.

TypeId

Ketika diimplementasikan di kelas turunan, mendapatkan pengidentifikasi unik untuk ini Attribute.

(Diperoleh dari Attribute)

Metode

Equals(Object)

Mengembalikan nilai yang menunjukkan apakah instans ini sama dengan objek tertentu.

(Diperoleh dari Attribute)
GetHashCode()

Mengembalikan kode hash untuk instans ini.

(Diperoleh dari Attribute)
GetType()

Mendapatkan instans Type saat ini.

(Diperoleh dari Object)
IsDefaultAttribute()

Ketika ditimpa di kelas turunan, menunjukkan apakah nilai instans ini adalah nilai default untuk kelas turunan.

(Diperoleh dari Attribute)
Match(Object)

Saat ditimpa di kelas turunan, mengembalikan nilai yang menunjukkan apakah instans ini sama dengan objek tertentu.

(Diperoleh dari Attribute)
MemberwiseClone()

Membuat salinan dangkal dari yang saat ini Object.

(Diperoleh dari Object)
ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)

Implementasi Antarmuka Eksplisit

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

Memetakan sekumpulan nama ke sekumpulan pengidentifikasi pengiriman yang sesuai.

(Diperoleh dari Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Mengambil informasi jenis untuk objek, yang dapat digunakan untuk mendapatkan informasi jenis untuk antarmuka.

(Diperoleh dari Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Mengambil jumlah antarmuka informasi jenis yang disediakan objek (baik 0 atau 1).

(Diperoleh dari Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Menyediakan akses ke properti dan metode yang diekspos oleh objek.

(Diperoleh dari Attribute)

Berlaku untuk

Lihat juga