RuntimeCompatibilityAttribute クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
Exception クラスから派生しない例外を RuntimeWrappedException オブジェクトでラップするかどうかを指定します。 このクラスは継承できません。
public ref class RuntimeCompatibilityAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Assembly, AllowMultiple=false, Inherited=false)]
public sealed class RuntimeCompatibilityAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Assembly, AllowMultiple=false, Inherited=false)]
[System.Serializable]
public sealed class RuntimeCompatibilityAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Assembly, AllowMultiple=false, Inherited=false)>]
type RuntimeCompatibilityAttribute = class
inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.Assembly, AllowMultiple=false, Inherited=false)>]
[<System.Serializable>]
type RuntimeCompatibilityAttribute = class
inherit Attribute
Public NotInheritable Class RuntimeCompatibilityAttribute
Inherits Attribute
- 継承
- 属性
例
次のコード例では、String オブジェクトを C++ の例外としてスローし、RuntimeWrappedException オブジェクトを使用してキャッチするアセンブリにRuntimeCompatibilityAttribute クラスを適用する方法を示します。
using namespace System;
using namespace System::Runtime::CompilerServices;
[assembly:RuntimeCompatibilityAttribute(WrapNonExceptionThrows = true)];
void run()
{
try
{
throw gcnew String("This is a string");
}
catch(RuntimeWrappedException^ e)
{
Console::WriteLine("RuntimeWrappedException caught!");
}
}
int main()
{
run();
return 0;
}
注釈
C++ などの一部の言語では、任意の型の例外をスローできます。 Microsoft C# や Visual Basic などの他の言語では、スローされるすべての例外を Exception クラスから派生する必要があります。 言語間の互換性を維持するために、共通言語ランタイム (CLR) は、 Exception から派生していないオブジェクトを RuntimeWrappedException オブジェクトにラップします。
RuntimeCompatibilityAttribute クラスを使用して、アセンブリの catch ブロックと例外フィルター内で例外をラップするかどうかを指定できます。 Microsoft C# コンパイラや Visual Basic コンパイラなど、多くの言語コンパイラでは、この属性を既定で適用して折り返し動作を指定します。
RuntimeCompatibilityAttribute クラスを使用して例外をラップしないように指定した場合でも、ランタイムは例外をラップします。 この場合、例外は catch ブロックまたは例外フィルター内でのみラップ解除されます。
コンストラクター
| 名前 | 説明 |
|---|---|
| RuntimeCompatibilityAttribute() |
RuntimeCompatibilityAttribute クラスの新しいインスタンスを初期化します。 |
プロパティ
| 名前 | 説明 |
|---|---|
| TypeId |
派生クラスで実装されている場合は、この Attributeの一意の識別子を取得します。 (継承元 Attribute) |
| WrapNonExceptionThrows |
Exception クラスから派生していない例外をRuntimeWrappedException オブジェクトでラップするかどうかを示す値を取得または設定します。 |
メソッド
| 名前 | 説明 |
|---|---|
| Equals(Object) |
このインスタンスが指定したオブジェクトと等しいかどうかを示す値を返します。 (継承元 Attribute) |
| GetHashCode() |
このインスタンスのハッシュ コードを返します。 (継承元 Attribute) |
| GetType() |
現在のインスタンスの Type を取得します。 (継承元 Object) |
| IsDefaultAttribute() |
派生クラスでオーバーライドされた場合、このインスタンスの値が派生クラスの既定値であるかどうかを示します。 (継承元 Attribute) |
| Match(Object) |
派生クラスでオーバーライドされた場合、このインスタンスが指定したオブジェクトと等しいかどうかを示す値を返します。 (継承元 Attribute) |
| MemberwiseClone() |
現在の Objectの簡易コピーを作成します。 (継承元 Object) |
| ToString() |
現在のオブジェクトを表す文字列を返します。 (継承元 Object) |
明示的なインターフェイスの実装
| 名前 | 説明 |
|---|---|
| _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
一連の名前を対応する一連のディスパッチ識別子に割り当てます。 (継承元 Attribute) |
| _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
インターフェイスの型情報を取得するために使用できるオブジェクトの型情報を取得します。 (継承元 Attribute) |
| _Attribute.GetTypeInfoCount(UInt32) |
オブジェクトが提供する型情報インターフェイスの数 (0 または 1) を取得します。 (継承元 Attribute) |
| _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
オブジェクトによって公開されるプロパティとメソッドへのアクセスを提供します。 (継承元 Attribute) |