ReadOnlyArrayAttribute Classe

Definizione

Quando applicato al parametro di una matrice in un componente di Windows Runtime, specifica che il contenuto della matrice passata al parametro viene usato solo per l'input. Il chiamante prevede che la matrice resti invariata dopo la chiamata.

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
Ereditarietà
ReadOnlyArrayAttribute
Attributi

Commenti

Se un parametro di matrice nel componente Windows Runtime viene passato per valore (ByVal in Visual Basic), è necessario applicare uno degli attributi seguenti:

  • Applicare l'attributo ReadOnlyArrayAttribute se si intende usare il contenuto della matrice solo per l'input.

  • Applicare l'attributo WriteOnlyArrayAttribute se si intende usare il contenuto della matrice solo per l'output, ovvero il metodo imposta il contenuto della matrice ma non li legge.

L'applicazione di entrambi gli attributi a un parametro causa un errore. Per altre informazioni, incluso il modello standard per apportare modifiche a una matrice, vedere Passaggio di matrici a un componente Windows Runtime in Windows Dev Center.

Importante

I parametri con l'attributo ReadOnlyArrayAttribute si comportano in modo diverso a seconda che il chiamante sia scritto in codice nativo o codice gestito. Se il chiamante è codice nativo (estensioni del componente JavaScript o Visual C++), la matrice viene copiata quando la chiamata supera il limite dell'interfaccia ABI (Application Binary Interface). Se necessario, gli elementi vengono convertiti. Di conseguenza, eventuali modifiche effettuate dal metodo a una matrice di solo input non saranno visibili al chiamante.

Se il chiamante è codice gestito, la matrice non viene copiata. La matrice originale è disponibile per il metodo chiamato, come in qualsiasi chiamata al metodo in .NET Framework. Dal momento che il contenuto della matrice è modificabile nel codice .NET Framework, eventuali modifiche apportate dal metodo alla matrice sono visibili al chiamante. Questo aspetto è importante da ricordare perché influisce sugli unit test scritti per un componente Windows Runtime. Se i test sono scritti in codice gestito, il contenuto di una matrice risulterà modificabile durante il test.

L'applicazione di questo attributo a un parametro con l'attributo InAttribute o OutAttribute genera un errore quando il modulo viene esportato. L'applicazione dell'attributo a un out parametro causa anche un errore.

Costruttori

ReadOnlyArrayAttribute()

Inizializza una nuova istanza della classe ReadOnlyArrayAttribute.

Proprietà

TypeId

Quando è implementata in una classe derivata, ottiene un identificatore univoco della classe Attribute.

(Ereditato da Attribute)

Metodi

Equals(Object)

Restituisce un valore che indica se questa istanza è uguale a un oggetto specificato.

(Ereditato da Attribute)
GetHashCode()

Restituisce il codice hash per l'istanza.

(Ereditato da Attribute)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
IsDefaultAttribute()

In caso di override in una classe derivata, indica se il valore di questa istanza è il valore predefinito per la classe derivata.

(Ereditato da Attribute)
Match(Object)

Quando è sottoposto a override in una classe derivata, restituisce un valore che indica se questa istanza equivale a un oggetto specificato.

(Ereditato da Attribute)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

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

Esegue il mapping di un set di nomi a un set corrispondente di ID dispatch.

(Ereditato da Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Recupera le informazioni sul tipo relative a un oggetto, che possono essere usate per ottenere informazioni sul tipo relative a un'interfaccia.

(Ereditato da Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Recupera il numero delle interfacce di informazioni sul tipo fornite da un oggetto (0 o 1).

(Ereditato da Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fornisce l'accesso a proprietà e metodi esposti da un oggetto.

(Ereditato da Attribute)

Si applica a

Vedi anche