BestFitMappingAttribute BestFitMappingAttribute BestFitMappingAttribute BestFitMappingAttribute Class

定義

Unicode 文字を、その文字に一番近い 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
属性

次の例に Unicode 文字の変換で例外をスローして最適マッピングを無効にする方法を示しています、'?'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.

既定では、共通言語ランタイムは Windows 98 または Windows me. で実行する非管理対象のメソッドに渡される Unicode 文字が管理している ANSI 文字に変換します。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. たとえば、マーシャラーには、Unicode の著作権文字を ANSI 文字を許可する非管理対象のメソッドには、'c' に変換します。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. 特定の Unicode 文字が円記号など、危険な文字に変換されます '\' 文字で、パスを誤って変更することができます。Certain Unicode characters are converted to dangerous characters, such as the backslash '\' character, which can inadvertently change a path.

BestFitMappingAttribute 最適マッピングの側面を制御する 2 つのパラメーターを提供します。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.

コントロールをマップできない文字に例外をスローする 2 番目のパラメーターを使用することができます。You can use the second parameter to control throwing an exception on unmappable characters. 既定値、ThrowOnUnmappableCharフィールドはfalseに変換する Unicode 文字が無効にします各例外がスローされるランタイムの時間が発生した、'?'。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し、2 番目のパラメーターを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 文字または LPSTRs アンマネージのセーフ配列にします。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

マップできない Unicode 文字 (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

Unicode 文字を 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)

適用対象

こちらもご覧ください