BestFitMappingAttribute Класс

Определение

Определяет, преобразуются ли символы Юникода в ближайшие соответствующие символы ANSI.

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
Наследование
BestFitMappingAttribute
Атрибуты

Примеры

В следующем примере показано, как отключить оптимальное сопоставление и создать исключение для преобразования символов Юникода в "?" Символ ANSI. Настройка BestFitMappingAttribute параметров таким образом обеспечивает добавленную меру безопасности.

[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

Комментарии

Этот атрибут можно применить к сборке, интерфейсу, классу или структуре.

Предостережение

Некоторые символы не имеют лучшего представления; эти символы называются неприменимыми. Неприменимые символы обычно преобразуются в значение по умолчанию "?" Символ ANSI. Некоторые символы Юникода преобразуются в опасные символы, такие как символ обратной косой черты \, который может случайно изменить путь.

BestFitMappingAttribute предоставляет два параметра для управления аспектами сопоставления с оптимальным соответствием. Вы используете первый параметр, чтобы включить и отключить сопоставление, подходящее для оптимального соответствия. Значением по умолчанию является trueсопоставление, которое обеспечивает оптимальное сопоставление на уровнях сборки, интерфейса и класса. Атрибут, применяемый к интерфейсу или классу, переопределяет атрибут уровня сборки. Вы также можете включить или отключить сопоставление, подходящее для вызовов платформы, с помощью DllImportAttribute.BestFitMapping поля. Значение, заданное полем вызова платформы, переопределяет все уровни BestFitMappingAttribute.

Второй параметр можно использовать для управления исключением для неуправляемых символов. Значением по умолчанию для ThrowOnUnmappableChar поля является falseотключение исключения при каждом обнаружении символа Юникода, который должен быть преобразован в "?" Символ ANSI. Даже если сопоставление trueлучше всего подходит, неуправляемые символы создают исключение при ThrowOnUnmappableChar наличии trueполя. Чтобы ужесточить безопасность, можно переключить первый параметр на false и второй параметр true. Эта комбинация параметров включает оптимальное сопоставление, но включает механизм создания исключений в качестве меры предосторожности.

Предостережение

Нельзя изменить значения по умолчанию, предоставляемые BestFitMappingAttribute при передаче управляемого массива, элементы которого — ANSI Chars или LPSTRs в неуправляемый безопасный массив. Сопоставление лучшего соответствия всегда включено, и исключение не может быть создано. Имейте в виду, что это сочетание может скомпрометировать модель безопасности.

Конструкторы

Имя Описание
BestFitMappingAttribute(Boolean)

Инициализирует новый экземпляр BestFitMappingAttribute класса, заданный для значения BestFitMapping свойства.

Поля

Имя Описание
ThrowOnUnmappableChar

Включает или отключает исключение для неуправляемого символа Юникода, преобразованного в символ ANSI "?".

Свойства

Имя Описание
BestFitMapping

Возвращает оптимальное поведение сопоставления при преобразовании символов Юникода в символы ANSI.

TypeId

При реализации в производном классе получает уникальный идентификатор для этого Attribute.

(Унаследовано от Attribute)

Методы

Имя Описание
Equals(Object)

Возвращает значение, указывающее, равен ли этот экземпляр указанному объекту.

(Унаследовано от Attribute)
GetHashCode()

Возвращает хэш-код для этого экземпляра.

(Унаследовано от Attribute)
GetType()

Возвращает Type текущего экземпляра.

(Унаследовано от Object)
IsDefaultAttribute()

При переопределении в производном классе указывает, является ли значение этого экземпляра значением по умолчанию для производного класса.

(Унаследовано от Attribute)
Match(Object)

При переопределении в производном классе возвращает значение, указывающее, равен ли этот экземпляр указанному объекту.

(Унаследовано от Attribute)
MemberwiseClone()

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Явные реализации интерфейса

Имя Описание
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Сопоставляет набор имен соответствующему набору идентификаторов диспетчеризации.

(Унаследовано от Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Извлекает сведения о типе объекта, который можно использовать для получения сведений о типе для интерфейса.

(Унаследовано от Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Возвращает количество предоставляемых объектом интерфейсов для доступа к сведениям о типе (0 или 1).

(Унаследовано от Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Предоставляет доступ к свойствам и методам, предоставляемым объектом.

(Унаследовано от Attribute)

Применяется к

См. также раздел