DllImportAttribute.ThrowOnUnmappableChar Bidang
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mengaktifkan atau menonaktifkan pelemparan pengecualian pada karakter Unicode yang tidak dapat diaplikasikan yang dikonversi ke karakter "?" ANSI.
public: bool ThrowOnUnmappableChar;
public bool ThrowOnUnmappableChar;
val mutable ThrowOnUnmappableChar : bool
Public ThrowOnUnmappableChar As Boolean
Nilai Bidang
Contoh
Dalam beberapa kasus, pengembang Visual Basic menggunakan DllImportAttribute untuk menentukan fungsi DLL dalam kode terkelola, alih-alih menggunakan pernyataan Declare.
ThrowOnUnmappableChar Mengatur bidang adalah salah satu kasus tersebut. Contoh berikut menunjukkan cara menerapkan keamanan pemetaan karakter paling ketat ke definisi metode pemanggilan platform dengan menentukan set karakter ANSI, menonaktifkan perilaku pemetaan yang paling sesuai, dan melemparkan pengecualian pada karakter Unicode yang tidak dipetakan.
[DllImport("My.dll", CharSet = CharSet::Ansi,
BestFitMapping = false,
ThrowOnUnmappableChar = true)]
int SomeFuncion2(int parm);
[DllImport("My.dll", CharSet = CharSet.Ansi,
BestFitMapping = false,
ThrowOnUnmappableChar = true)]
internal static extern int SomeFuncion2(int parm);
<DllImport("My.dll", CharSet:=CharSet.Ansi,
BestFitMapping:=False,
ThrowOnUnmappableChar:=True)>
Friend Shared Function SomeFuncion2(parm As Integer) As Integer
End Function
Keterangan
true untuk menunjukkan bahwa pengecualian dilemparkan setiap kali interop marshaler mengonversi karakter yang tidak dapat dipetakan; false untuk menunjukkan bahwa bidang dinonaktifkan ThrowOnUnmappableChar . Bidang ini secara false default.
Caution
Karakter Unicode tertentu dikonversi ke karakter berbahaya, seperti karakter garis miring terbalik '\', yang secara tidak sengaja dapat mengubah jalur. Dengan mengatur ThrowOnUnmappableChar bidang ke true, Anda dapat memberi sinyal keberadaan karakter yang tidak dapat dipetakan ke pemanggil dengan melemparkan pengecualian.
Caution
Anda tidak dapat mengubah nilai default yang disediakan oleh BestFitMapping bidang dan ThrowOnUnmappableChar saat meneruskan array terkelola yang elemennya adalah Karakter ANSI atau LPSTR ke array aman yang tidak dikelola. Pemetaan yang paling pas selalu diaktifkan dan tidak terkecuali dilemparkan. Ketahuilah bahwa kombinasi ini dapat membahayakan model keamanan Anda.