DllImportAttribute.ThrowOnUnmappableChar Campo
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Habilita o deshabilita el inicio de una excepción cuando un carácter Unicode que no se puede asignar se convierte en un carácter ANSI "?".
public: bool ThrowOnUnmappableChar;
public bool ThrowOnUnmappableChar;
val mutable ThrowOnUnmappableChar : bool
Public ThrowOnUnmappableChar As Boolean
Valor de campo
Ejemplos
En algunos casos, los desarrolladores de Visual Basic usan para DllImportAttribute definir una función DLL en código administrado, en lugar de usar la Declare
instrucción . Establecer el ThrowOnUnmappableChar campo es uno de esos casos. En el ejemplo siguiente se muestra cómo aplicar la seguridad de asignación de caracteres más estricta a las definiciones de métodos de invocación de plataforma especificando el juego de caracteres ANSI, deshabilitando el comportamiento de asignación de ajuste óptimo e iniciando una excepción en caracteres Unicode sin asignar.
[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
Comentarios
true
para indicar que se produce una excepción cada vez que el serializador de interoperabilidad convierte un carácter no aplicable; false
para indicar que el ThrowOnUnmappableChar campo está deshabilitado. Este campo es false
de forma predeterminada.
Precaución
Algunos caracteres Unicode se convierten en caracteres peligrosos, como el carácter de barra diagonal inversa '\', que puede cambiar accidentalmente una ruta de acceso. Al establecer el ThrowOnUnmappableChar campo true
en , puede indicar la presencia de un carácter no aplicable al autor de la llamada iniciando una excepción.
Precaución
No se pueden cambiar los valores predeterminados proporcionados por los BestFitMapping campos y ThrowOnUnmappableChar al pasar una matriz administrada cuyos elementos son caracteres ANSI o LPSTR a una matriz segura no administrada. La asignación más adecuada siempre está habilitada y no se produce ninguna excepción. Tenga en cuenta que esta combinación puede poner en peligro el modelo de seguridad.