BestFitMappingAttribute BestFitMappingAttribute BestFitMappingAttribute BestFitMappingAttribute Class

Определение

Определяет необходимость преобразования символов Юникода в наиболее подходящие символы ANSI.Controls whether Unicode characters are converted to the closest matching ANSI characters.

public ref class BestFitMappingAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Struct | System.AttributeTargets.Interface, Inherited=false)]
[System.Runtime.InteropServices.ComVisible(true)]
[System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Interface | System.AttributeTargets.Struct, Inherited=false)]
public sealed class BestFitMappingAttribute : Attribute
type BestFitMappingAttribute = class
    inherit Attribute
Public NotInheritable Class BestFitMappingAttribute
Inherits Attribute
Наследование
BestFitMappingAttributeBestFitMappingAttributeBestFitMappingAttributeBestFitMappingAttribute
Атрибуты

Примеры

В следующем примере показано отключение наилучшего сопоставления и исключение при преобразовании знаков Юникода в "?" Символ ANSI.The following example shows how to disable best fit mapping and to throw an exception on the conversion of Unicode characters to the '?' ANSI character. Параметр BestFitMappingAttribute параметров таким образом предоставляет дополнительной меры безопасности.Setting BestFitMappingAttribute parameters in this manner provides an added measure of security.

[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

Комментарии

Этот атрибут можно применить к сборке, интерфейса, класса или структуры.You can apply this attribute to an assembly, interface, class, or structure.

По умолчанию среда CLR преобразует в знаки ANSI все управляемые знаки Юникода, переданные в неуправляемый метод, выполняемый в Windows 98 или Windows Me.By default, the common language runtime converts to ANSI characters any managed Unicode characters passed to an unmanaged method executing on Windows 98 or Windows Me. Наилучшее сопоставление позволяет упаковщик взаимодействия выбрать наиболее подходящий знак, если точного соответствия не существует.Best-fit mapping enables the interop marshaler to select a close-matching character when no exact match exists. Например упаковщик преобразует об авторских правах знак Юникода, который «c» для неуправляемых методов, которые принимают символы ANSI.For example, the marshaler converts the Unicode copyright character to 'c' for unmanaged methods that accept ANSI characters.

Внимание!

Некоторые символы, не хватает наилучшее представление; Эти символы называются несопоставимыми.Some characters lack a best-fit representation; these characters are called unmappable. Неотображаемые символы преобразуются в значения по умолчанию "?" Символ ANSI.Unmappable characters are usually converted to the default '?' ANSI character. Некоторые символы Юникода преобразуются в опасные символы, такие как обратная косая черта "\" символ, который можно случайно изменить путь.Certain Unicode characters are converted to dangerous characters, such as the backslash '\' character, which can inadvertently change a path.

BestFitMappingAttribute предоставляет два параметра для управления аспектами наилучшего соответствия.BestFitMappingAttribute provides two parameters to control aspects of best-fit mapping. Первый параметр используется для включения наилучшего сопоставления, включения и отключения.You use the first parameter to toggle best-fit mapping on and off. Значение по умолчанию — true, который обеспечивает наилучшее сопоставление для сборки, уровней класса и интерфейса.The default value is true, which enables best-fit mapping on the assembly, interface, and class levels. Атрибут, применяемый к интерфейс или класс переопределяет атрибут уровня сборки.An attribute applied to an interface or class overrides an assembly-level attribute. Аналогичным образом можно включить или отключить наилучшего сопоставления для неуправляемого вызовов с помощью DllImportAttribute.BestFitMapping поля.You can likewise enable or disable best-fit mapping for platform invoke calls by using the DllImportAttribute.BestFitMapping field. Значение, заданное с помощью платформы вызова переопределения поля на всех уровнях BestFitMappingAttribute.A value set by the platform invoke field overrides all levels of BestFitMappingAttribute.

Можно использовать второй параметр для управления исключений для неотображаемых символов.You can use the second parameter to control throwing an exception on unmappable characters. Значение по умолчанию для ThrowOnUnmappableChar поле является false, отключающее исключение каждый раз среда выполнения обнаруживает знак Юникода, должно быть преобразовано в "?" Символ ANSI.The default value for the ThrowOnUnmappableChar field is false, which disables throwing an exception each time the runtime encounters a Unicode character that has to be converted to the '?' ANSI character. Даже если наилучшее сопоставление true, неотображаемые знаки создают исключение при ThrowOnUnmappableChar поле является true.Even if best-fit mapping is true, unmappable characters generate an exception when the ThrowOnUnmappableChar field is true. Чтобы усилить безопасность, можно переключаться первым параметром для false и второй параметр true.To tighten security, you can toggle the first parameter to false and the second parameter to true. Такое сочетание параметров включает наилучшего сопоставления, но включает в качестве меры предосторожности механизм исключения.This combination of parameter settings turns best-fit mapping off, but enables the exception-throwing mechanism as a safety precaution.

Внимание!

Невозможно изменить значения по умолчанию, предоставляемые BestFitMappingAttribute при передаче управляемого массива, элементы которого должны ANSI или LPSTR неуправляемый безопасный массив.You cannot change the default values provided by BestFitMappingAttribute when passing a managed array whose elements are ANSI Chars or LPSTRs to an unmanaged safe array. Наилучшее сопоставление включено всегда и не исключение.Best-fit mapping is always enabled and no exception can be thrown. Имейте в виду, что это сочетание может скомпрометировать модели безопасности.Be aware that this combination can compromise your security model.

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

BestFitMappingAttribute(Boolean) BestFitMappingAttribute(Boolean) BestFitMappingAttribute(Boolean) BestFitMappingAttribute(Boolean)

Инициализирует новый экземпляр класса BestFitMappingAttribute и присваивает ему значение свойства BestFitMapping.Initializes a new instance of the BestFitMappingAttribute class set to the value of the BestFitMapping property.

Поля

ThrowOnUnmappableChar ThrowOnUnmappableChar ThrowOnUnmappableChar ThrowOnUnmappableChar

Включает и отключает возникновение исключений для неотображаемых символов Юникода, преобразующихся в знаки вопроса ("?") ANSI.Enables or disables the throwing of an exception on an unmappable Unicode character that is converted to an ANSI '?' character.

Свойства

BestFitMapping BestFitMapping BestFitMapping BestFitMapping

Возвращает текущие настройки наилучшего сопоставления при преобразовании знаков Юникода в знаки ANSI.Gets the best-fit mapping behavior when converting Unicode characters to ANSI characters.

TypeId TypeId TypeId TypeId

При реализации в производном классе возвращает уникальный идентификатор для этого Attribute.When implemented in a derived class, gets a unique identifier for this Attribute.

(Inherited from Attribute)

Методы

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Возвращает значение, указывающее, равен ли этот экземпляр указанному объекту.Returns a value that indicates whether this instance is equal to a specified object.

(Inherited from Attribute)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Возвращает хэш-код для данного экземпляра.Returns the hash code for this instance.

(Inherited from Attribute)
GetType() GetType() GetType() GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Inherited from Object)
IsDefaultAttribute() IsDefaultAttribute() IsDefaultAttribute() IsDefaultAttribute()

При переопределении в производном классе показывает, является ли значение данного экземпляра значением по умолчанию для производного класса.When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

(Inherited from Attribute)
Match(Object) Match(Object) Match(Object) Match(Object)

При переопределении в производном классе возвращает значение, указывающее, является ли этот экземпляр равным заданному объекту.When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

(Inherited from Attribute)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Inherited from Object)

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

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Сопоставляет набор имен соответствующему набору идентификаторов диспетчеризации.Maps a set of names to a corresponding set of dispatch identifiers.

(Inherited from Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Возвращает сведения о типе объекта, которые могут использоваться для получения сведений о типе интерфейса.Retrieves the type information for an object, which can be used to get the type information for an interface.

(Inherited from Attribute)
_Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32)

Возвращает количество предоставляемых объектом интерфейсов для доступа к сведениям о типе (0 или 1).Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(Inherited from Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Предоставляет доступ к открытым свойствам и методам объекта.Provides access to properties and methods exposed by an object.

(Inherited from Attribute)

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

Дополнительно