Condividi tramite


Applicazione di attributi di interoperabilità

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.

Vedere anche