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