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

MarshalAsAttribute クラス

マネージ コードアンマネージ コード間でデータマーシャリングする方法示します

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

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

この属性は、パラメータフィールド、または戻り値適用できます

データ型には既定マーシャリング動作があるため、この属性省略できます。この属性は、特定の型を複数の型にマーシャリングできる場合にだけ必要です。たとえば、LPStr、LPWStr、LPTStr、または BStr のいずれかとして、文字列アンマネージ コードマーシャリングできます既定では、共通言語ランタイムBStr として COM メソッドに文字パラメータマーシャリングます。MarshalAsAttribute 属性個別フィールドまたはパラメータ適用して、その特定の文字列BStr ではなくLPStr としてマーシャリングできますタイプ ライブラリ エクスポータ (Tlbexp.exe) は、指定したマーシャリング基本設定共通言語ランタイム渡します

一部パラメータ戻り値では、COM 相互運用またはプラットフォーム呼び出し使用され場合に、異な既定マーシャリング動作適用されます。既定では、文字列パラメータ (および値型内のフィールド) は、プラットフォーム呼び出しメソッドまたは関数対すLPStr としてマーシャリングされます詳細については、既定マーシャリング動作トピック参照してください

ほとんどの場合次に示す C# シグネチャのように、この属性は単に UnmanagedType 列挙体を使用して、アンマネージ データ書式識別します。

void
    MyMethod([MarshalAs(LPStr)] String s);

一部UnmanagedType 列挙メンバには、追加情報が必要です。たとえば、UnmanagedType が LPArray の場合に、追加情報必要になります配列でのこの属性使い方詳細については、「配列対す既定マーシャリング」を参照してください

タイプ ライブラリ インポータ (Tlbimp.exe) でも、この属性パラメータフィールド、および戻り値適用し入力タイプ ライブラリデータ型対応するマネージ データ型の既定の型ではないことを示します。Tlbimp.exe は、紛らわしいことがないよう、入力タイプ ライブラリ指定された型に関係なく、常に MarshalAsAttributeString 型と Object 型に適用します。

メモメモ

MarshalAsAttribute では、ジェネリック型マーシャリングサポートしていません。

使用例使用例

パラメータフィールド、および戻り値適用される MarshalAsAttributeマネージ ソース コード記述した例を次に示します

Imports System.Runtime.InteropServices

Module Program
    'Applied to a parameter.
    Public Sub M1(<MarshalAs(UnmanagedType.LPWStr)>
 ByVal msg As String)
    End Sub

    'Applied to a field within a class.
    Class MsgText
        <MarshalAs(UnmanagedType.LPWStr)> Public msg As
 String
    End Class

    'Applied to a a return value.
    Public Function M2() As
 <MarshalAs(UnmanagedType.LPWStr)> String
    End Function
End Module

//Applied to a parameter.
public void M1 ([MarshalAs(UnmanagedType.LPWStr)]String msg);

//Applied to a field within a class.
class MsgText {
    [MarshalAs(UnmanagedType.LPWStr)] public String
 msg;
}

//Applied to a return value.
[return: MarshalAs(UnmanagedType.LPWStr)]
public String GetMessage();
継承階層継承階層
System.Object
   System.Attribute
    System.Runtime.InteropServices.MarshalAsAttribute
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバ場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
MarshalAsAttribute メンバ
System.Runtime.InteropServices 名前空間
UnmanagedType
その他の技術情報
タイプ ライブラリ エクスポータ (Tlbexp.exe)
タイプ ライブラリ インポータ (Tlbimp.exe)

MarshalAsAttribute コンストラクタ (UnmanagedType)

指定した UnmanagedType 列挙メンバ使用して、MarshalAsAttribute クラス新しインスタンス初期化します。

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

Public Sub New ( _
    unmanagedType As UnmanagedType _
)
Dim unmanagedType As UnmanagedType

Dim instance As New MarshalAsAttribute(unmanagedType)
public MarshalAsAttribute (
    UnmanagedType unmanagedType
)
public:
MarshalAsAttribute (
    UnmanagedType unmanagedType
)
public MarshalAsAttribute (
    UnmanagedType unmanagedType
)
public function MarshalAsAttribute (
    unmanagedType : UnmanagedType
)

パラメータ

unmanagedType

マーシャリング後のデータの UnmanagedType 値。

解説解説

エラー招きにくく、読みやすいコードにするためには、常にこのコンストラクタ使用してください

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

MarshalAsAttribute コンストラクタ (Int16)

指定した UnmanagedType 値を使用して、MarshalAsAttribute クラス新しインスタンス初期化します。

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

Public Sub New ( _
    unmanagedType As Short _
)
Dim unmanagedType As Short

Dim instance As New MarshalAsAttribute(unmanagedType)
public MarshalAsAttribute (
    short unmanagedType
)
public:
MarshalAsAttribute (
    short unmanagedType
)
public MarshalAsAttribute (
    short unmanagedType
)
public function MarshalAsAttribute (
    unmanagedType : short
)

パラメータ

unmanagedType

マーシャリング後のデータの UnmanagedType 値。

解説解説

このコンストラクタは、UnmanagedType 列挙体の各メンバを表す、基になる 16 ビット符号付き整数値を受け取りますタイプ ライブラリ インポータ (Tlbimp.exe) は、このコンストラクタ使用します

プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
MarshalAsAttribute クラス
MarshalAsAttribute メンバ
System.Runtime.InteropServices 名前空間
UnmanagedType
その他の技術情報
タイプ ライブラリ インポータ (Tlbimp.exe)

MarshalAsAttribute コンストラクタ

MarshalAsAttribute クラス新しインスタンス初期化します。
オーバーロードの一覧オーバーロードの一覧

名前 説明
MarshalAsAttribute (Int16) 指定した UnmanagedType 値を使用してMarshalAsAttribute クラス新しインスタンス初期化します。

.NET Compact Framework によってサポートされています。

MarshalAsAttribute (UnmanagedType) 指定した UnmanagedType 列挙メンバ使用してMarshalAsAttribute クラス新しインスタンス初期化します。

.NET Compact Framework によってサポートされています。

参照参照

関連項目

MarshalAsAttribute クラス
MarshalAsAttribute メンバ
System.Runtime.InteropServices 名前空間
UnmanagedType

その他の技術情報

タイプ ライブラリ インポータ (Tlbimp.exe)

MarshalAsAttribute フィールド


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

  名前 説明
パブリック フィールド SizeParamIndex COMsize_is のように、0 から始まる配列要素カウント格納しているパラメータ示します
参照参照

関連項目

MarshalAsAttribute クラス
System.Runtime.InteropServices 名前空間
UnmanagedType

その他の技術情報

タイプ ライブラリ エクスポータ (Tlbexp.exe)
タイプ ライブラリ インポータ (Tlbimp.exe)

MarshalAsAttribute プロパティ


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

  名前 説明
パブリック プロパティ TypeId  派生クラス実装されている場合は、この Attribute一意識別子取得します。 ( Attribute から継承されます。)
パブリック プロパティ Value マーシャリングデータの UnmanagedType 値を取得します
参照参照

関連項目

MarshalAsAttribute クラス
System.Runtime.InteropServices 名前空間
UnmanagedType

その他の技術情報

タイプ ライブラリ エクスポータ (Tlbexp.exe)
タイプ ライブラリ インポータ (Tlbimp.exe)

MarshalAsAttribute メソッド


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

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

関連項目

MarshalAsAttribute クラス
System.Runtime.InteropServices 名前空間
UnmanagedType

その他の技術情報

タイプ ライブラリ エクスポータ (Tlbexp.exe)
タイプ ライブラリ インポータ (Tlbimp.exe)

MarshalAsAttribute メンバ

マネージ コードアンマネージ コード間でデータマーシャリングする方法示します

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


パブリック コンストラクタパブリック コンストラクタ
  名前 説明
パブリック メソッド MarshalAsAttribute オーバーロードされます。 MarshalAsAttribute クラス新しインスタンス初期化します。
パブリック フィールドパブリック フィールド
  名前 説明
パブリック フィールド SizeParamIndex COMsize_is のように、0 から始まる配列要素カウント格納しているパラメータ示します
パブリック プロパティパブリック プロパティ
  名前 説明
パブリック プロパティ TypeId  派生クラス実装されている場合は、この Attribute一意識別子取得します。(Attribute から継承されます。)
パブリック プロパティ Value マーシャリングデータの UnmanagedType 値を取得します
パブリック メソッドパブリック メソッド
  名前 説明
パブリック メソッド Equals  オーバーロードされます。 ( Attribute から継承されます。)
パブリック メソッド GetCustomAttribute  オーバーロードされますアセンブリモジュール、型のメンバ、またはメソッド パラメータ適用され指定した型のカスタム属性取得します。 (Attribute から継承されます。)
パブリック メソッド GetCustomAttributes  オーバーロードされますアセンブリモジュール、型のメンバ、またはメソッド パラメータ適用されカスタム属性配列取得します。 (Attribute から継承されます。)
パブリック メソッド GetHashCode  このインスタンスハッシュ コード返します。 (Attribute から継承されます。)
パブリック メソッド GetType  現在のインスタンスType取得します。 (Object から継承されます。)
パブリック メソッド IsDefaultAttribute  派生クラス内でオーバーライドされたときに、このインスタンスの値が派生クラス既定値かどうか示します。 (Attribute から継承されます。)
パブリック メソッド IsDefined  オーバーロードされます指定した型のカスタム属性が、アセンブリモジュール、型のメンバ、またはメソッド パラメータ適用されているかどうか判断します。 (Attribute から継承されます。)
パブリック メソッド Match  派生クラス内でオーバーライドされたときに、指定したオブジェクトとこのインスタンス等しかどうかを示す値を返します。 (Attribute から継承されます。)
パブリック メソッド ReferenceEquals  指定した複数Object インスタンス同一かどうか判断します。 (Object から継承されます。)
パブリック メソッド ToString  現在の Object を表す String返します。 (Object から継承されます。)
参照参照

関連項目

MarshalAsAttribute クラス
System.Runtime.InteropServices 名前空間
UnmanagedType

その他の技術情報

タイプ ライブラリ エクスポータ (Tlbexp.exe)
タイプ ライブラリ インポータ (Tlbimp.exe)


このページでは「.NET Framework クラス ライブラリ リファレンス」からMarshalAsAttributeを検索した結果を表示しています。
Weblioに収録されているすべての辞書からMarshalAsAttributeを検索する場合は、下記のリンクをクリックしてください。
 全ての辞書からMarshalAsAttribute を検索

英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「MarshalAsAttribute」の関連用語

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

   

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



MarshalAsAttributeのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

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

©2025 GRAS Group, Inc.RSS