DllImportAttribute.BestFitMapping Campo

Definición

Habilita o deshabilita el comportamiento de asignación de ajuste perfecto al convertir caracteres Unicode en caracteres ANSI.

public: bool BestFitMapping;
public bool BestFitMapping;
val mutable BestFitMapping : bool
Public BestFitMapping As Boolean 

Valor de campo

Boolean

Ejemplos

En algunos casos, Visual Basic desarrolladores usan DllImportAttribute, en lugar de la Declare instrucción , para definir una función DLL en código administrado. Establecer el BestFitMapping 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 mejor ajuste y 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

Si truees , se habilita el comportamiento de asignación de mejor ajuste; de lo contrario, se deshabilita la asignación más adecuada. El BestFitMapping campo es true de forma predeterminada. Configuración para este campo invalidan la configuración de cualquier nivel para el System.Runtime.InteropServices.BestFitMappingAttribute atributo .

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 trueen , 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.

Se aplica a

Consulte también