MarshalAsAttribute クラス
アセンブリ: mscorlib (mscorlib.dll 内)

<AttributeUsageAttribute(AttributeTargets.Field Or AttributeTargets.Parameter Or AttributeTargets.ReturnValue, Inherited:=False)> _ <ComVisibleAttribute(True)> _ Public NotInheritable Class MarshalAsAttribute Inherits Attribute
[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

この属性は、パラメータ、フィールド、または戻り値に適用できます。
各データ型には既定のマーシャリング動作があるため、この属性は省略できます。この属性は、特定の型を複数の型にマーシャリングできる場合にだけ必要です。たとえば、LPStr、LPWStr、LPTStr、または BStr のいずれかとして、文字列をアンマネージ コードにマーシャリングできます。既定では、共通言語ランタイムは BStr として COM メソッドに文字列パラメータをマーシャリングします。MarshalAsAttribute 属性を個別のフィールドまたはパラメータに適用して、その特定の文字列を BStr ではなく、LPStr としてマーシャリングできます。タイプ ライブラリ エクスポータ (Tlbexp.exe) は、指定したマーシャリングの基本設定を共通言語ランタイムに渡します。
一部のパラメータと戻り値では、COM 相互運用またはプラットフォーム呼び出しで使用された場合に、異なる既定のマーシャリング動作が適用されます。既定では、文字列パラメータ (および値型内のフィールド) は、プラットフォーム呼び出しのメソッドまたは関数に対する LPStr としてマーシャリングされます。詳細については、既定のマーシャリングの動作 のトピックを参照してください。
ほとんどの場合、次に示す C# シグネチャのように、この属性は単に UnmanagedType 列挙体を使用して、アンマネージ データの書式を識別します。
一部の UnmanagedType 列挙体メンバには、追加の情報が必要です。たとえば、UnmanagedType が LPArray の場合に、追加の情報が必要になります。配列でのこの属性の使い方の詳細については、「配列に対する既定のマーシャリング」を参照してください。
タイプ ライブラリ インポータ (Tlbimp.exe) でも、この属性をパラメータ、フィールド、および戻り値に適用し、入力のタイプ ライブラリのデータ型が対応するマネージ データ型の既定の型ではないことを示します。Tlbimp.exe は、紛らわしいことがないよう、入力のタイプ ライブラリに指定された型に関係なく、常に MarshalAsAttribute を String 型と Object 型に適用します。
![]() |
---|

パラメータ、フィールド、および戻り値に適用される 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.Attribute
System.Runtime.InteropServices.MarshalAsAttribute


Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


MarshalAsAttribute コンストラクタ (UnmanagedType)
アセンブリ: mscorlib (mscorlib.dll 内)



Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


MarshalAsAttribute コンストラクタ (Int16)
アセンブリ: mscorlib (mscorlib.dll 内)


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

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


MarshalAsAttribute コンストラクタ

名前 | 説明 |
---|---|
MarshalAsAttribute (Int16) | 指定した UnmanagedType 値を使用して、MarshalAsAttribute クラスの新しいインスタンスを初期化します。 .NET Compact Framework によってサポートされています。 |
MarshalAsAttribute (UnmanagedType) | 指定した UnmanagedType 列挙体メンバを使用して、MarshalAsAttribute クラスの新しいインスタンスを初期化します。 .NET Compact Framework によってサポートされています。 |

MarshalAsAttribute フィールド
MarshalAsAttribute プロパティ

名前 | 説明 | |
---|---|---|
![]() | TypeId | 派生クラスに実装されている場合は、この Attribute の一意の識別子を取得します。 ( Attribute から継承されます。) |
![]() | Value | マーシャリング後データの UnmanagedType 値を取得します。 |

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 メンバ
マネージ コードとアンマネージ コード間でデータをマーシャリングする方法を示します。
MarshalAsAttribute データ型で公開されるメンバを以下の表に示します。



名前 | 説明 | |
---|---|---|
![]() | 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 から継承されます。) |

Weblioに収録されているすべての辞書からMarshalAsAttributeを検索する場合は、下記のリンクをクリックしてください。

- MarshalAsAttributeのページへのリンク