BestFitMappingAttribute クラス

定義

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.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
属性

次の例では、最適マッピングを無効にし、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. たとえば、ANSI 文字を受け入れるアンマネージメソッドの場合、マーシャラーは Unicode の著作権文字を ' 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. セキュリティを強化するために、最初のパラメーターをに切り替え、2番目のパラメーターをに切り替えることができ 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 文字または 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 プロパティの値を設定して、BestFitMapping クラスの新しいインスタンスを初期化します。Initializes a new instance of the BestFitMappingAttribute class set to the value of the BestFitMapping property.

フィールド

ThrowOnUnmappableChar

マップできない Unicode 文字 (ANSI の "?" に変換される文字) が見つかったときに、例外をスローするかどうかを指定します。Enables or disables the throwing of an exception on an unmappable Unicode character that is converted to an ANSI '?' character.

プロパティ

BestFitMapping

Unicode 文字を ANSI 文字に変換するときの、最適マッピングの動作を取得します。Gets the best-fit mapping behavior when converting Unicode characters to ANSI characters.

TypeId

派生クラスで実装されると、この Attribute の一意の識別子を取得します。When implemented in a derived class, gets a unique identifier for this Attribute.

(継承元 Attribute)

メソッド

Equals(Object)

このインスタンスが、指定されたオブジェクトと等価であるかどうかを示す値を返します。Returns a value that indicates whether this instance is equal to a specified object.

(継承元 Attribute)
GetHashCode()

このインスタンスのハッシュ コードを返します。Returns the hash code for this instance.

(継承元 Attribute)
GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(継承元 Object)
IsDefaultAttribute()

派生クラスでオーバーライドされるとき、このインスタンスの値が派生クラスの既定値であるかどうかを示します。When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

(継承元 Attribute)
Match(Object)

派生クラス内でオーバーライドされたときに、指定したオブジェクトとこのインスタンスが等しいかどうかを示す値を返します。When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

(継承元 Attribute)
MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(継承元 Object)
ToString()

現在のオブジェクトを表す文字列を返します。Returns a string that represents the current object.

(継承元 Object)

明示的なインターフェイスの実装

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

一連の名前を対応する一連のディスパッチ識別子に割り当てます。Maps a set of names to a corresponding set of dispatch identifiers.

(継承元 Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

オブジェクトの型情報を取得します。この情報はインターフェイスの型情報の取得に使用できます。Retrieves the type information for an object, which can be used to get the type information for an interface.

(継承元 Attribute)
_Attribute.GetTypeInfoCount(UInt32)

オブジェクトが提供する型情報インターフェイスの数 (0 または 1) を取得します。Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(継承元 Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

オブジェクトによって公開されたプロパティおよびメソッドへのアクセスを提供します。Provides access to properties and methods exposed by an object.

(継承元 Attribute)

適用対象

こちらもご覧ください