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

PreserveSigAttribute クラス

COM 相互運用呼び出し中に発生する HRESULT または retval シグネチャ変換中止することを示します

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

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

この属性は、メソッド適用できます

既定では、タイプ ライブラリ エクスポータ (Tlbexp.exe) によって、HRESULT に S_OK を返す呼び出しは、[out, retval] パラメータ関数戻り値として使用されるように、変換されます。S_OK の HRESULT は破棄されます。HRESULT が S_OK 以外の場合共通言語ランタイム例外スローして、[out, retval] パラメータ破棄します。PreserveSigAttributeマネージ メソッドシグネチャ適用した場合属性適用されメソッドマネージ シグネチャとアンマネージ シグネチャ同一になります

メンバ複数成功 HRESULT 値を返し、またその複数の値を検出する必要がある場合は、元のメソッドシグネチャ保持が必要となります。ほとんどの COM メンバは HRESULT を 1 つ返すため、PreserveSigAttribute適用することによって、成功またはエラーの HRESULT を表す整数値を取得できます。Tlbexp.exe はすべての [out, retval] パラメータマネージ シグネチャout パラメータとして保持します

タイプ ライブラリ インポータ (Tlbimp.exe) もこの属性適用します。Tlbimp.exe は、タイプ ライブラリインポートするときにこの属性ディスパッチ インターフェイス適用します。

メモメモ

COM からマネージ コードへの相互運用時にマネージ コードPreserveSigAttribute クラスマークされていた場合PreserveSigAttribute クラスでは、戻り値CurrencyGuid、および Object の型はサポートされません。これらの条件で、これらのいずれか戻り値の型を PreserveSigAttribute クラス使用すると、TypeLoadException がスローさます。

使用例使用例

アセンブリCOM タイプ ライブラリエクスポートするときに、Tlbexp.exe が PreserveSigAttribute なしで C# メソッド変換する場合の例を次に示します

マネージ シグネチャ :

アンマネージ シグネチャ :

HRESULT DoSomething ([in] long l, [out, retval] int * i);

PreserveSigAttribute を同じ C# メソッド適用してアセンブリエクスポートした場合メソッド変換は前の例とは異なります。Tlbexp.exe は HRESULT および [out, retval] パラメータ修飾子削除することに注目してください

マネージ シグネチャ :

[PreserveSig] int DoSomething (long l);

アンマネージ シグネチャ :

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

PreserveSigAttribute コンストラクタ


PreserveSigAttribute プロパティ


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

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

関連項目

PreserveSigAttribute クラス
System.Runtime.InteropServices 名前空間

その他の技術情報

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

PreserveSigAttribute メソッド


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

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

関連項目

PreserveSigAttribute クラス
System.Runtime.InteropServices 名前空間

その他の技術情報

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

PreserveSigAttribute メンバ

COM 相互運用呼び出し中に発生する HRESULT または retval シグネチャ変換中止することを示します

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


パブリック コンストラクタパブリック コンストラクタ
  名前 説明
パブリック メソッド PreserveSigAttribute PreserveSigAttribute クラス新しインスタンス初期化します。
パブリック プロパティパブリック プロパティ
  名前 説明
パブリック プロパティ 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 から継承されます。)
参照参照

関連項目

PreserveSigAttribute クラス
System.Runtime.InteropServices 名前空間

その他の技術情報

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



英和和英テキスト翻訳

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

辞書ショートカット

すべての辞書の索引

「PreserveSigAttribute」の関連用語

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

   

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



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

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

©2026 GRAS Group, Inc.RSS