Freigeben über


ReadOnlyArrayAttribute Klasse

Definition

Wenn sie auf einen Arrayparameter in einer Windows-Runtime Komponente angewendet wird, wird angegeben, dass der Inhalt des Arrays, das an diesen Parameter übergeben wird, nur für Eingaben verwendet wird. Der Aufrufer erwartet, dass das Array vom Aufruf unverändert bleibt.

public ref class ReadOnlyArrayAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Parameter, AllowMultiple=false, Inherited=false)]
public sealed class ReadOnlyArrayAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Parameter, AllowMultiple=false, Inherited=false)>]
type ReadOnlyArrayAttribute = class
    inherit Attribute
Public NotInheritable Class ReadOnlyArrayAttribute
Inherits Attribute
Vererbung
ReadOnlyArrayAttribute
Attribute

Hinweise

Wenn ein Arrayparameter in Ihrer Windows-Runtime Komponente nach Wert übergeben wird (ByVal in Visual Basic), müssen Sie eines der folgenden Attribute darauf anwenden:If an array parameter in your Windows-Runtime component is passed by value (ByVal in Visual Basic), you must apply one of the following attributes to it:

  • Wenden Sie das ReadOnlyArrayAttribute Attribut an, wenn Der Inhalt des Arrays nur für Eingaben verwendet werden soll.

  • Wenden Sie das WriteOnlyArrayAttribute Attribut an, wenn Der Inhalt des Arrays nur für die Ausgabe verwendet werden soll (d. a. die Methode legt den Inhalt des Arrays fest, liest sie jedoch nicht).

Das Anwenden beider Attribute auf einen Parameter führt zu einem Fehler. Weitere Informationen, einschließlich des Standardmusters zum Vornehmen von Änderungen an einem Array, finden Sie unter Passing arrays to a Windows-Runtime component im Windows Dev Center.

Von Bedeutung

Parameter, die das ReadOnlyArrayAttribute Attribut aufweisen, verhalten sich je nachdem, ob der Aufrufer in systemeigenem Code oder verwaltetem Code geschrieben wird. Wenn der Aufrufer systemeigener Code (JavaScript- oder Visual C++-Komponentenerweiterungen) ist, wird das Array kopiert, wenn der Aufruf die Grenze der Binären Schnittstelle (Application Binary Interface, ABI) überschreitet. Elemente werden bei Bedarf konvertiert. Daher sind versehentliche Änderungen, die die Methode an einem reinen Eingabearray vor sich nimmt, für den Aufrufer nicht sichtbar.

Wenn der Aufrufer verwalteter Code ist, wird das Array nicht kopiert. Das ursprüngliche Array ist für die aufgerufene Methode verfügbar, wie es sich in jedem Methodenaufruf im .NET Framework befindet. Arrayinhalte sind in .NET Framework-Code änderbar, sodass alle Änderungen, die die Methode an dem Array vor nimmt, für den Aufrufer sichtbar sind. Dies ist wichtig zu beachten, da sie Komponententests betrifft, die für eine Windows-Runtime Komponente geschrieben wurden. Wenn die Tests in verwaltetem Code geschrieben werden, scheint der Inhalt eines Arrays während des Tests änderbar zu sein.

Wenn Sie dieses Attribut auf einen Parameter anwenden, der das InAttributeOutAttribute Oder-Attribut aufweist, tritt beim Exportieren des Moduls ein Fehler auf. Das Anwenden des Attributs auf einen out Parameter verursacht auch einen Fehler.

Konstruktoren

Name Beschreibung
ReadOnlyArrayAttribute()

Initialisiert eine neue Instanz der ReadOnlyArrayAttribute-Klasse.

Eigenschaften

Name Beschreibung
TypeId

Wenn sie in einer abgeleiteten Klasse implementiert wird, wird ein eindeutiger Bezeichner für diese Attribute.

(Geerbt von Attribute)

Methoden

Name Beschreibung
Equals(Object)

Gibt einen Wert zurück, der angibt, ob diese Instanz einem angegebenen Objekt entspricht.

(Geerbt von Attribute)
GetHashCode()

Gibt den Hashcode für diese Instanz zurück.

(Geerbt von Attribute)
GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
IsDefaultAttribute()

Wenn sie in einer abgeleiteten Klasse überschrieben wird, gibt an, ob der Wert dieser Instanz der Standardwert für die abgeleitete Klasse ist.

(Geerbt von Attribute)
Match(Object)

Wenn sie in einer abgeleiteten Klasse überschrieben wird, wird ein Wert zurückgegeben, der angibt, ob diese Instanz einem angegebenen Objekt entspricht.

(Geerbt von Attribute)
MemberwiseClone()

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

Name Beschreibung
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Ordnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu.

(Geerbt von Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Ruft die Typinformationen für ein Objekt ab, mit denen die Typinformationen für eine Schnittstelle abgerufen werden können.

(Geerbt von Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Ruft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1).

(Geerbt von Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Bietet Zugriff auf Eigenschaften und Methoden, die von einem Objekt verfügbar gemacht werden.

(Geerbt von Attribute)

Gilt für:

Weitere Informationen