Applicazione di attributi di interoperabilità
Lo spazio dei nomi System.Runtime.InteropServices fornisce tre categorie di attributi specifici dell'interoperabilità: quelli da applicare manualmente in fase di progettazione, quelli che vengono applicati dalle API e dagli strumenti dell'interoperabilità COM durante il processo di conversione e quelli che vengono applicati nell'uno o nell'altro modo.
Per informazioni su come utilizzare gli attributi nel codice gestito, vedere Estensione di metadati mediante attributi. Come per altri attributi personalizzati, è possibile applicare gli attributi specifici dell'interoperabilità a tipi, metodi, proprietà, parametri e altri membri.
Attributi della fase di progettazione
L'utilizzo di attributi della fase di progettazione consente di intervenire sul risultato del processo di conversione eseguito dalle API e dagli strumenti di interoperabilità COM. Nella tabella che segue vengono descritti gli attributi che possono essere applicati al codice sorgente gestito. Anche gli strumenti di interoperabilità COM possono in alcuni casi applicare gli attributi descritti di seguito.
Attributo |
Descrizione |
---|---|
Specifica se il marshalling del tipo deve essere eseguito utilizzando il gestore di marshalling di automazione oppure un proxy e uno stub personalizzati. |
|
Controlla il tipo di interfaccia generato per una classe. |
|
Identifica il CLSID della coclasse originale importata da una libreria dei tipi. Questo attributo viene in genere applicato dagli strumenti di interoperabilità COM. |
|
Indica che una coclasse o una definizione di interfaccia è stata importata da una libreria dei tipi COM. Il runtime utilizza questo flag per determinare come attivare il tipo e effettuarne il marshalling. Questo attributo impedisce la riesportazione del tipo in una libreria dei tipi. Questo attributo viene in genere applicato dagli strumenti di interoperabilità COM. |
|
Indica che quando l'assembly viene registrato per l'utilizzo da COM deve essere chiamato un metodo specificato, in modo che possa essere eseguito codice utente durante il processo di registrazione. |
|
Identifica le interfacce che sono fonti di eventi per la classe. Gli strumenti di interoperabilità COM possono applicare questo attributo. |
|
Indica che quando la registrazione dell'assembly presso COM viene annullata deve essere chiamato un metodo specificato, in modo che possa essere eseguito codice utente durante il processo. |
|
Rende i tipi invisibili a COM quando il valore dell'attributo è uguale a false. Questo attributo può essere applicato a un tipo singolo o a un intero assembly per controllare la visibilità COM. Tutti i tipi gestiti e pubblici sono visibili per impostazione predefinita. Non occorre utilizzare questo attributo per renderli visibili. |
|
Specifica il DISPID COM di un metodo o di un campo. Questo attributo contiene il DISPID per il metodo, per il campo o per la proprietà che descrive. Gli strumenti di interoperabilità COM possono applicare questo attributo. |
|
Indica la posizione fisica di ciascun campo all'interno di una classe quando è utilizzato con l'attributo StructLayoutAttribute e LayoutKind è impostato su Explicit. |
|
Specifica l'identificatore univoco globale (GUID, Globally Unique Identifier) di una classe, un'interfaccia o un'intera libreria dei tipi. La stringa di formato passata all'attributo deve costituire un argomento valido per il costruttore del tipo System.Guid. Gli strumenti di interoperabilità COM possono applicare questo attributo. |
|
Indica quale implementazione dell'interfaccia IDispatch utilizza Common Language Runtime quando espone a COM interfacce duali e interfacce dispatch. |
|
Indica che è necessario effettuare il marshalling dei dati verso il chiamante. Può essere utilizzato per i parametri. |
|
Controlla come una interfaccia gestita è esposta ai client COM (Dual, derivata da IUnknown o soltanto IDispatch). Gli strumenti di interoperabilità COM possono applicare questo attributo. |
|
Indica che una firma del metodo non gestito accetta un parametro LCID. Gli strumenti di interoperabilità COM possono applicare questo attributo. |
|
Indica come deve essere effettuato il marshalling dei dati di campi o parametri tra codice gestito e codice non gestito. Questo attributo è sempre facoltativo perché per ciascun tipo di dati è previsto un comportamento di marshalling predefinito. Gli strumenti di interoperabilità COM possono applicare questo attributo. |
|
Indica che un parametro è facoltativo. Gli strumenti di interoperabilità COM possono applicare questo attributo. |
|
Indica che è necessario effettuare il marshalling dei dati di un campo o parametro restituito da un oggetto chiamato al relativo chiamante. |
|
Disattiva la trasformazione della firma retval o HRESULT che normalmente ha luogo durante le chiamate di interoperabilità. L'attributo influisce sul marshalling, come pure sull'esportazione delle librerie dei tipi. Gli strumenti di interoperabilità COM possono applicare questo attributo. |
|
Specifica il ProgID di una classe .NET Framework. Può essere utilizzato per le classi. |
|
Controlla il layout fisico dei campi di una classe. Gli strumenti di interoperabilità COM possono applicare questo attributo. |
Attributi di strumenti di conversione
Nella tabella che segue vengono descritti gli attributi applicati dagli strumenti di interoperabilità COM durante il processo di conversione. Questi attributi non vanno applicati in fase di progettazione.
Attributo |
Descrizione |
---|---|
Indica gli alias COM di un tipo campo o parametro. Può essere utilizzato per parametri, campi o valori restituiti. |
|
Indica che informazioni relative a una classe o a un'interfaccia sono andate perdute durante l'importazione da una libreria dei tipi a un assembly. |
|
Identifica l'interfaccia di origine e la classe che implementa i metodi dell'interfaccia eventi. |
|
Indica che l'assembly è stato importato in origine da una libreria dei tipi COM. Questo attributo contiene la definizione della libreria dei tipi di origine. |
|
Contiene i FUNCFLAGS importati all'origine per questa funzione dalla libreria dei tipi COM. |
|
Contiene i TYPEFLAGS importati all'origine per questo tipo dalla libreria dei tipi COM. |
|
Contiene i VARFLAGS importati all'origine per questa variabile dalla libreria dei tipi COM. |
Vedere anche
Riferimenti
System.Runtime.InteropServices
Concetti
Esposizione di componenti .NET Framework a COM
Estensione di metadati mediante attributi