RuntimeCompatibilityAttribute Класс

Определение

Указывает, следует ли создавать оболочку для выражений, не являющихся производными от класса 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
Наследование
RuntimeCompatibilityAttribute
Атрибуты

Примеры

В следующем примере кода показано, как применить RuntimeCompatibilityAttribute класс к сборке, которая создает String объект в виде исключения в C++ и перехватывает его с помощью RuntimeWrappedException объекта.

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 создает оболочку для объектов, которые не являются производными RuntimeWrappedException от Exception объекта.

Класс можно использовать, 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)

Применяется к