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
- Наследование
- Атрибуты
Примеры
В следующем примере показано, как отключить сопоставление с оптимальным соответствием и вызвать исключение при преобразовании символов Юникода в "?". Символ 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) |