Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Lo System.Runtime.InteropServices spazio dei nomi fornisce tre categorie di attributi specifici dell'interoperabilità: quelli applicati dall'utente in fase di progettazione, quelli applicati dagli strumenti di interoperabilità COM e dalle API durante il processo di conversione e quelli applicati dall'utente o dall'interoperabilità COM.
Se non si ha familiarità con l'attività di applicazione di attributi al codice gestito, vedere Estensione dei metadati tramite attributi. Analogamente ad altri attributi personalizzati, è possibile applicare attributi specifici dell'interoperabilità a tipi, metodi, proprietà, parametri, campi e altri membri.
attributi Design-Time
È possibile modificare il risultato del processo di conversione eseguito dagli strumenti di interoperabilità COM e dalle API usando gli attributi della fase di progettazione. Nella tabella seguente vengono descritti gli attributi che è possibile applicare al codice sorgente gestito. Gli strumenti di interoperabilità COM possono anche applicare occasionalmente gli attributi descritti in questa tabella.
| Attributo | Descrizione |
|---|---|
| AutomationProxyAttribute | Specifica se il tipo deve essere sottoposto a marshalling usando il marshaller di Automazione o un proxy personalizzato e uno stub. |
| ClassInterfaceAttribute | Controlla il tipo di interfaccia generata per una classe. |
| CoClassAttribute | Identifica il CLSID della coclasse originale importata da una libreria dei tipi. Gli strumenti di interoperabilità COM applicano in genere questo attributo. |
| ComImportAttribute | Indica che una definizione di coclasse o di interfaccia è stata importata da una libreria dei tipi COM. Il runtime usa questo flag per sapere come attivare e gestire il tipo. Questo attributo impedisce l'esportazione di un tipo in una libreria dei tipi. Gli strumenti di interoperabilità COM applicano in genere questo attributo. |
| ComRegisterFunctionAttribute | Indica che un metodo deve essere chiamato quando l'assembly viene registrato per l'uso da COM, in modo che il codice scritto dall'utente possa essere eseguito durante il processo di registrazione. |
| ComSourceInterfacesAttribute | Identifica le interfacce che sono origini di eventi per la classe . Gli strumenti di interoperabilità COM possono applicare questo attributo. |
| ComUnregisterFunctionAttribute | Indica che un metodo deve essere chiamato quando l'assembly non viene registrato da COM, in modo che il codice scritto dall'utente possa essere eseguito durante il processo. |
| ComVisibleAttribute | Esegue il rendering dei tipi invisibili a COM quando il valore dell'attributo è false. Questo attributo può essere applicato a un singolo tipo o a un intero assembly per gestire la visibilità COM. Per impostazione predefinita, tutti i tipi pubblici gestiti sono visibili; l'attributo non è necessario per renderli visibili. |
| DispIdAttribute | Specifica l'identificatore di invio COM (DISPID) di un metodo o di un campo. Questo attributo contiene il DISPID per il metodo, il campo o la proprietà descritta. Gli strumenti di interoperabilità COM possono applicare questo attributo. |
| ComDefaultInterfaceAttribute | Indica l'interfaccia predefinita per una classe COM implementata in .NET. Gli strumenti di interoperabilità COM possono applicare questo attributo. |
| FieldOffsetAttribute | Indica la posizione fisica di ogni campo all'interno di una classe quando viene usata con StructLayoutAttribute e LayoutKind è impostato su Explicit. |
| GuidAttribute | Specifica l'identificatore univoco globale (GUID) di una classe, un'interfaccia o un'intera libreria dei tipi. La stringa passata all'attributo deve essere un formato che rappresenta un argomento costruttore accettabile per il tipo System.Guid. Gli strumenti di interoperabilità COM possono applicare questo attributo. |
| IDispatchImplAttribute | Indica quale implementazione dell'interfaccia IDispatch il linguaggio comune runtime utilizza quando espone interfacce duali e dispinterfaces al COM. |
| InAttribute | Indica che i dati devono essere trasferiti al chiamante. Può essere usato per assegnare parametri. |
| InterfaceTypeAttribute | Controlla la modalità di esposizione di un'interfaccia gestita ai client COM (solo dual, IUnknown o IDispatch). Gli strumenti di interoperabilità COM possono applicare questo attributo. |
| LCIDConversionAttribute | Indica che la firma di un metodo non gestito prevede un parametro LCID. Gli strumenti di interoperabilità COM possono applicare questo attributo. |
| MarshalAsAttribute | Indica come eseguire il marshalling dei dati nei campi o nei parametri tra codice gestito e non gestito. L'attributo è sempre facoltativo perché ogni tipo di dati ha un comportamento di marshalling predefinito. Gli strumenti di interoperabilità COM possono applicare questo attributo. |
| OptionalAttribute | Indica che un parametro è facoltativo. Gli strumenti di interoperabilità COM possono applicare questo attributo. |
| OutAttribute | Indica che i dati in un campo o parametro devono essere sottoposti a serializzazione dall'oggetto chiamato al chiamante. |
| PreserveSigAttribute | Sopprime la trasformazione della firma HRESULT o retval che normalmente avverrebbe durante le invocazioni di interoperabilità. L'attributo influisce sul marshalling e sull'esportazione della libreria dei tipi. Gli strumenti di interoperabilità COM possono applicare questo attributo. |
| ProgIdAttribute | Specifica il ProgID di una classe .NET. Può essere usato per le classi di attributi. |
| StructLayoutAttribute | Controlla il layout fisico dei campi di una classe. Gli strumenti di interoperabilità COM possono applicare questo attributo. |
attributi Conversion-Tool
Nella tabella seguente vengono descritti gli attributi applicati dagli strumenti di interoperabilità COM durante il processo di conversione. Questi attributi non vengono applicati in fase di progettazione.
| Attributo | Descrizione |
|---|---|
| ComAliasNameAttribute | Indica l'alias COM per un parametro o un tipo di campo. Può essere usato per attribuire parametri, campi o valori restituiti. |
| ComConversionLossAttribute | Indica che le informazioni su una classe o un'interfaccia sono state perse quando sono state importate da una libreria dei tipi a un assembly. |
| ComEventInterfaceAttribute | Identifica l'interfaccia di origine e la classe che implementa i metodi dell'interfaccia evento. |
| ImportedFromTypeLibAttribute | Indica che l'assembly è stato originariamente importato da una libreria di tipi COM. Questo attributo contiene la definizione della libreria dei tipi originale. |
| TypeLibFuncAttribute | Contiene i FUNCFLAGS importati originariamente per questa funzione dalla libreria dei tipi COM. |
| TypeLibTypeAttribute | Contiene i TYPEFLAGS che sono stati originariamente importati per questo tipo dalla libreria dei tipi COM. |
| TypeLibVarAttribute | Contiene i VARFLAGS importati originariamente per questa variabile dalla libreria dei tipi COM. |