BestFitMappingAttributeとは? わかりやすく解説

BestFitMappingAttribute クラス

Unicode 文字を最も近い ANSI 文字に変換するかどうかを制御します。

名前空間: System.Runtime.InteropServices
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

<AttributeUsageAttribute(AttributeTargets.Assembly Or AttributeTargets.Class
 Or AttributeTargets.Struct Or AttributeTargets.Interface,
 Inherited:=False)> _
<ComVisibleAttribute(True)> _
Public NotInheritable Class
 BestFitMappingAttribute
    Inherits Attribute
Dim instance As BestFitMappingAttribute
[AttributeUsageAttribute(AttributeTargets.Assembly|AttributeTargets.Class|AttributeTargets.Struct|AttributeTargets.Interface,
 Inherited=false)] 
[ComVisibleAttribute(true)] 
public sealed class BestFitMappingAttribute
 : Attribute
[AttributeUsageAttribute(AttributeTargets::Assembly|AttributeTargets::Class|AttributeTargets::Struct|AttributeTargets::Interface,
 Inherited=false)] 
[ComVisibleAttribute(true)] 
public ref class BestFitMappingAttribute sealed
 : public Attribute
/** @attribute AttributeUsageAttribute(AttributeTargets.Assembly|AttributeTargets.Class|AttributeTargets.Struct|AttributeTargets.Interface,
 Inherited=false) */ 
/** @attribute ComVisibleAttribute(true) */ 
public final class BestFitMappingAttribute
 extends Attribute
AttributeUsageAttribute(AttributeTargets.Assembly|AttributeTargets.Class|AttributeTargets.Struct|AttributeTargets.Interface,
 Inherited=false) 
ComVisibleAttribute(true) 
public final class BestFitMappingAttribute
 extends Attribute
解説解説

この属性は、アセンブリ、インターフェイス、クラス、または構造体に適用できます。

Windows 98 または Windows Me で実行するアンマネージ メソッドにマネージ Unicode 文字が渡された場合、既定では、このような Unicode 文字は共通言語ランタイムによって ANSI 文字に変換されます。最適マッピングを使用すると、完全一致が存在しないときに、相互運用マーシャリングが最も近い文字を選択します。たとえば、マーシャラは、ANSI 文字を許可するアンマネージ メソッドの場合、Unicode の著作権記号を 'c' に変換します。

注意に関するメモ注意

一部の文字には最適形式が存在しません。このような文字はマップできない文字といいます。マップできない文字は原則として、既定の '?'ANSI 文字に変換されます。特定の Unicode 文字は、意図せずパスを変更するおそれがある円記号 "\" など、危険な文字に変換されます。

BestFitMappingAttribute には、最適マッピングの動作を制御するためのパラメータが 2 つ用意されています。1 番目のパラメータは、最適マッピングのオン/オフを切り替えるために使用します。既定値は true です。この場合、アセンブリ レベル、インターフェイス レベル、クラス レベルで最適マッピングが有効になります。属性がインターフェイスまたはクラスに適用された場合、アセンブリ レベルの属性はオーバーライドされます。同様に、DllImportAttribute.BestFitMapping フィールドを使用することによって、プラットフォーム呼び出しの最適マッピングのオン/オフを切り替えることもできます。プラットフォーム呼び出しのフィールドで値を設定すると、すべてのレベルの BestFitMappingAttribute がオーバーライドされます。

2 番目のパラメータでは、マップできない文字があったときに例外をスローするかどうかを制御します。ThrowOnUnmappableChar フィールドの既定値は false です。この場合、共通言語ランタイムが '?' ANSI 文字に変換される Unicode 文字に遭遇するたびに例外がスローされることはありません。最適マッピングが true の場合でも、ThrowOnUnmappableChar フィールドが true の場合は、マップできない文字が見つかったときに例外が生成されます。セキュリティを高めるには、1 番目のパラメータを false に設定し、2 番目のパラメータを true に設定します。このパラメータの組み合わせでは、最適マッピングがオフになりますが、安全対策として例外がスローされるようになります。

注意に関するメモ注意

アンマネージ セーフ配列への ANSI の Chars または LPSTR が要素となっているマネージ配列を渡す場合は、BestFitMappingAttribute の既定値を変更できません。最適マッピングは常に有効となり、例外はスローされません。この組み合わせの場合、セキュリティ モデルが損なわれるおそれがあります。

使用例使用例

最適マッピングを無効にして、Unicode 文字が '?' ANSI 文字に変換されたときに例外をスローする例を次に示します。この方法で BestFitMappingAttribute のパラメータを設定すると、セキュリティを高めることができます。

<BestFitMapping(False, ThrowOnUnmappableChar := True)>
 _
 Interface IMyInterface1
      'Insert code here.
 End Interface
[BestFitMapping(false, ThrowOnUnmappableChar = true)]
 interface IMyInterface1 
 {
     //Insert code here.
 }
継承階層継承階層
System.Object
   System.Attribute
    System.Runtime.InteropServices.BestFitMappingAttribute
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
BestFitMappingAttribute メンバ
System.Runtime.InteropServices 名前空間
BestFitMapping

BestFitMappingAttribute コンストラクタ

BestFitMapping プロパティの値を設定して、BestFitMappingAttribute クラスの新しいインスタンスを初期化します。

名前空間: System.Runtime.InteropServices
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

Public Sub New ( _
    BestFitMapping As Boolean _
)
Dim BestFitMapping As Boolean

Dim instance As New BestFitMappingAttribute(BestFitMapping)
public BestFitMappingAttribute (
    bool BestFitMapping
)
public:
BestFitMappingAttribute (
    bool BestFitMapping
)
public BestFitMappingAttribute (
    boolean BestFitMapping
)
public function BestFitMappingAttribute (
    BestFitMapping : boolean
)

パラメータ

BestFitMapping

最適マッピングが有効なことを示す場合は true。それ以外の場合は false。既定値は true です。

プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
BestFitMappingAttribute クラス
BestFitMappingAttribute メンバ
System.Runtime.InteropServices 名前空間

BestFitMappingAttribute フィールド


パブリック フィールドパブリック フィールド

  名前 説明
パブリック フィールド ThrowOnUnmappableChar マップできない Unicode 文字 (ANSI の '?' に変換される文字) が見つかったときに、例外をスローするかどうかを指定します。
参照参照

関連項目

BestFitMappingAttribute クラス
System.Runtime.InteropServices 名前空間
BestFitMapping

BestFitMappingAttribute プロパティ


パブリック プロパティパブリック プロパティ

  名前 説明
パブリック プロパティ BestFitMapping Unicode 文字を ANSI 文字に変換するときの、最適マッピングの動作を取得します。
パブリック プロパティ TypeId  派生クラスに実装されている場合は、この Attribute の一意の識別子を取得します。 ( Attribute から継承されます。)
参照参照

関連項目

BestFitMappingAttribute クラス
System.Runtime.InteropServices 名前空間
BestFitMapping

BestFitMappingAttribute メソッド


パブリック メソッドパブリック メソッド

  名前 説明
パブリック メソッド Equals  オーバーロードされます。 ( Attribute から継承されます。)
パブリック メソッド GetCustomAttribute  オーバーロードされます。 アセンブリ、モジュール、型のメンバ、またはメソッド パラメータに適用された指定した型のカスタム属性を取得します。 ( Attribute から継承されます。)
パブリック メソッド GetCustomAttributes  オーバーロードされます。 アセンブリ、モジュール、型のメンバ、またはメソッド パラメータに適用されたカスタム属性の配列を取得します。 ( Attribute から継承されます。)
パブリック メソッド GetHashCode  このインスタンスのハッシュ コードを返します。 ( Attribute から継承されます。)
パブリック メソッド GetType  現在のインスタンスの Type を取得します。 ( Object から継承されます。)
パブリック メソッド IsDefaultAttribute  派生クラス内でオーバーライドされたときに、このインスタンスの値が派生クラスの既定値かどうかを示します。 ( Attribute から継承されます。)
パブリック メソッド IsDefined  オーバーロードされます。 指定した型のカスタム属性が、アセンブリ、モジュール、型のメンバ、またはメソッド パラメータに適用されているかどうかを判断します。 ( Attribute から継承されます。)
パブリック メソッド Match  派生クラス内でオーバーライドされたときに、指定したオブジェクトとこのインスタンスが等しいかどうかを示す値を返します。 ( Attribute から継承されます。)
パブリック メソッド ReferenceEquals  指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。)
パブリック メソッド ToString  現在の Object を表す String を返します。 ( Object から継承されます。)
参照参照

関連項目

BestFitMappingAttribute クラス
System.Runtime.InteropServices 名前空間
BestFitMapping

BestFitMappingAttribute メンバ

Unicode 文字を最も近い ANSI 文字に変換するかどうかを制御します。

BestFitMappingAttribute データ型で公開されるメンバを以下の表に示します。


パブリック コンストラクタパブリック コンストラクタ
  名前 説明
パブリック メソッド BestFitMappingAttribute BestFitMapping プロパティの値を設定して、BestFitMappingAttribute クラスの新しいインスタンスを初期化します。
パブリック フィールドパブリック フィールド
  名前 説明
パブリック フィールド ThrowOnUnmappableChar マップできない Unicode 文字 (ANSI の '?' に変換される文字) が見つかったときに、例外をスローするかどうかを指定します。
パブリック プロパティパブリック プロパティ
  名前 説明
パブリック プロパティ BestFitMapping Unicode 文字を ANSI 文字に変換するときの、最適マッピングの動作を取得します。
パブリック プロパティ TypeId  派生クラスに実装されている場合は、この Attribute の一意の識別子を取得します。(Attribute から継承されます。)
パブリック メソッドパブリック メソッド
  名前 説明
パブリック メソッド Equals  オーバーロードされます。 ( Attribute から継承されます。)
パブリック メソッド GetCustomAttribute  オーバーロードされます。 アセンブリ、モジュール、型のメンバ、またはメソッド パラメータに適用された指定した型のカスタム属性を取得します。 (Attribute から継承されます。)
パブリック メソッド GetCustomAttributes  オーバーロードされます。 アセンブリ、モジュール、型のメンバ、またはメソッド パラメータに適用されたカスタム属性の配列を取得します。 (Attribute から継承されます。)
パブリック メソッド GetHashCode  このインスタンスのハッシュ コードを返します。 (Attribute から継承されます。)
パブリック メソッド GetType  現在のインスタンスの Type を取得します。 (Object から継承されます。)
パブリック メソッド IsDefaultAttribute  派生クラス内でオーバーライドされたときに、このインスタンスの値が派生クラスの既定値かどうかを示します。 (Attribute から継承されます。)
パブリック メソッド IsDefined  オーバーロードされます。 指定した型のカスタム属性が、アセンブリ、モジュール、型のメンバ、またはメソッド パラメータに適用されているかどうかを判断します。 (Attribute から継承されます。)
パブリック メソッド Match  派生クラス内でオーバーライドされたときに、指定したオブジェクトとこのインスタンスが等しいかどうかを示す値を返します。 (Attribute から継承されます。)
パブリック メソッド ReferenceEquals  指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。)
パブリック メソッド ToString  現在の Object を表す String を返します。 (Object から継承されます。)
参照参照

関連項目

BestFitMappingAttribute クラス
System.Runtime.InteropServices 名前空間
BestFitMapping



英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

「BestFitMappingAttribute」の関連用語

BestFitMappingAttributeのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



BestFitMappingAttributeのページの著作権

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS