WriteOnlyArrayAttribute 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'output. Il chiamante non garantisce la corretta inizializzazione del contenuto e il metodo chiamato non deve leggere il contenuto.

public ref class WriteOnlyArrayAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Parameter, AllowMultiple=false, Inherited=false)]
public sealed class WriteOnlyArrayAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Parameter, AllowMultiple=false, Inherited=false)>]
type WriteOnlyArrayAttribute = class
    inherit Attribute
Public NotInheritable Class WriteOnlyArrayAttribute
Inherits Attribute
Ereditarietà
WriteOnlyArrayAttribute
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 WriteOnlyArrayAttribute 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++), il metodo chiamato non può fare ipotesi sul contenuto della matrice originale. Ad esempio, la matrice che il metodo riceve potrebbe non essere inizializzata o contenere valori predefiniti. È previsto che il metodo imposti i valori di tutti gli elementi della matrice.

Se il chiamante è codice gestito, la matrice originale del chiamante viene passata al metodo chiamato, come in qualsiasi chiamata al metodo in .NET Framework. Il contenuto della matrice è modificabile nel codice gestito, in modo che il metodo possa leggere e modificare in modo selettivo tali valori. Questo aspetto è importante da ricordare perché influisce sugli unit test scritti per un componente Windows Runtime. Se i test vengono scritti nel codice gestito, il contenuto di una matrice apparirà modificabile durante il test e i risultati saranno probabilmente diversi se il metodo viene chiamato dal codice nativo in un secondo momento.

L'applicazione di questo attributo a un out parametro o a un parametro con l'attributo InAttribute genera un errore quando il modulo viene esportato. L'applicazione dell'attributo a un parametro con l'attributo OutAttribute genera un errore a meno che il parametro non abbia anche il modificatore di Visual Basic ByRef . In tal caso, l'attributo è ridondante ma consentito.

Costruttori

WriteOnlyArrayAttribute()

Inizializza una nuova istanza della classe WriteOnlyArrayAttribute.

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