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

Комментарии

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

Внимание!

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

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

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

Внимание!

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

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

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)

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

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