ErrorWrapper-Klasse
Veröffentlicht: Oktober 2016
Umschließt Objekte, die der Marshaller als Marshallen einer VT_ERROR.
Namespace: System.Runtime.InteropServices
Assembly: mscorlib (in mscorlib.dll)
Vererbungshierarchie
System.Object
System.Runtime.InteropServices.ErrorWrapper
Syntax
[SerializableAttribute]
[ComVisibleAttribute(true)]
public sealed class ErrorWrapper
[SerializableAttribute]
[ComVisibleAttribute(true)]
public ref class ErrorWrapper sealed
[<Sealed>]
[<SerializableAttribute>]
[<ComVisibleAttribute(true)>]
type ErrorWrapper = class end
<SerializableAttribute>
<ComVisibleAttribute(True)>
Public NotInheritable Class ErrorWrapper
Konstruktoren
Name | Beschreibung | |
---|---|---|
ErrorWrapper(Exception) | Initialisiert eine neue Instanz der ErrorWrapper -Klasse mit dem HRESULT für die angegebene Ausnahme. |
|
ErrorWrapper(Int32) | Initialisiert eine neue Instanz der ErrorWrapper -Klasse mit dem HRESULT des Fehlers. |
|
ErrorWrapper(Object) | Initialisiert eine neue Instanz der ErrorWrapper -Klasse mit einem Objekt, das das HRESULT des Fehlers enthält. |
Eigenschaften
Name | Beschreibung | |
---|---|---|
ErrorCode | Ruft den Fehlercode des Wrappers ab. |
Methoden
Name | Beschreibung | |
---|---|---|
Equals(Object) | Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist.(Geerbt von „Object“.) |
|
GetHashCode() | Fungiert als die Standardhashfunktion.(Geerbt von „Object“.) |
|
GetType() | Ruft den Type der aktuellen Instanz ab.(Geerbt von „Object“.) |
|
ToString() | Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.(Geerbt von „Object“.) |
Hinweise
In der Standardeinstellung Object Typargumente als gemarshallt werden eine VARIANT Typ, wobei der Objekttyp bestimmt die VARTYPE Wert der VARIANT.
Die ErrorWrapper Geben Sie als übergeben werden muss ein Object Typ als gemarshallt werden eine VARIANT vom Typ VT_ERROR, andernfalls der ErrorWrapper Typ wird als ganze Zahl gemarshallt.
Die folgende Tabelle zeigt die Marshalling in einen verwalteten Aufruf einer systemeigenen Funktion mithilfe eines Plattformaufrufs.
Verwaltete Signatur-parameter |
pArr-Wert |
Als gemarshallt |
---|---|---|
ErrorWrapper [] pArr |
ErrorWrapper [10] von ErrorWrapper (77) |
Int[10] |
Objekt [] pArr |
ErrorWrapper [10] von ErrorWrapper (77) |
VARIANT[10] von VT_ERROR |
Objekt [] pArr |
Objekt [10] von ErrorWrapper (77) |
VARIANT[10] von VT_ERROR |
Die folgende Tabelle zeigt die Marshallen von Daten in einen verwalteten Aufruf einer systemeigenen Funktion mit COM-Runtime callable Wrapper (RCW).
Verwaltete Signatur-parameter |
pArr-Wert |
Als gemarshallt |
---|---|---|
ErrorWrapper [] pArr |
ErrorWrapper [10] von ErrorWrapper (77) |
Int[10] |
Objekt [] pArr |
ErrorWrapper [10] von ErrorWrapper (77) |
SafeArrayTypeMismatch Ausnahme |
Objekt [] pArr |
Objekt [10] von ErrorWrapper (77) |
SAFEARRAY(VARIANT) |
Beachten Sie, dass ErrorWrapper Objekte werden nicht als Typ gemarshallt VT_ERROR nachdem sie von COM zurück übergeben wurden Ein einzelner Wert wird von COM als Typ gemarshallt VT_I4, während die Arrays von COM als Typ gemarshallt werden VT_UI4.
Weitere Informationen zu VT_ERROR, finden Sie in der Dokumentation zu VARENUM::VT_ERROR in der MSDN Library.
Beispiele
Das folgende Codebeispiel veranschaulicht zunächst ein einziges Int32 gemarshallt von COM als Objekt ein Int32 Objekt. Es zeigt dann eine Int32 Array gemarshallt von COM als eine UInt32 Array.
// Scenario 1:
// Pass a single value.
Int32 x = 3;
Object o = new ErrorWrapper(x);
// Pass 'o' to COM.
// On the return trip, 'o' has been unwrapped and is still an Int32 object.
Int32 y = (Int32)o;
Scenario 2:
// Pass an array of values.
Int32[] arr = new Int32[3];
Object o = new ErrorWrapper(arr);
// Pass 'o' to COM.
// On the return trip, 'o' has been unwrapped and is now a UInt32[] array.
UInt32[ ] arr2 = (UInt32[])o;
Versionsinformationen
Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 1.1
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Windows Phone
Verfügbar seit 8.1
Threadsicherheit
Alle öffentlichen statischen Member ( Shared in Visual Basic) dieses Typs sind threadsicher. Die Threadsicherheit für Instanzmember ist nicht garantiert.
Siehe auch
System.Runtime.InteropServices-Namespace
Zurück zum Anfang