Procedura: creare assembly di interoperabilità primari manualmente
Un approccio utilizzato con minore frequenza per la creazione di una libreria dei tipi consiste nel creare manualmente un assembly di interoperabilità primario nel codice sorgente mediante un linguaggio conforme a Common Language Specification (CLS), ad esempio C#. Questo approccio si rivela utile quando non è disponibile una libreria dei tipi.
Creare un assembly di interoperabilità nel codice sorgente. Per ulteriori istruzioni, vedere Creazione manuale di un wrapper. In caso di creazione manuale di un assembly di interoperabilità primario è necessario includere tutti i tipi COM della libreria dei tipi originale.
Applicare i seguenti attributi a livello di assembly:
AssemblyKeyFileAttribute o AssemblyKeyNameAttribute, per specificare il nome del contenitore o del file contenente la coppia di chiavi da utilizzare per la firma dell'assembly con un nome sicuro.
GuidAttribute, per specificare l'identificatore di libreria (LIBID, Library Identifier) della libreria dei tipi di destinazione.
PrimaryInteropAssemblyAttribute, per identificare l'assembly come assembly di interoperabilità primario.
Nota È inoltre possibile ritardare la firma di un assembly durante la compilazione.Per ulteriori informazioni, vedere Ritardo della firma di un assembly.
Nell'esempio di codice riportato di seguito viene applicato l'attributo AssemblyKeyFileAttribute con un file di chiave denominato CompanyA.snk e viene specificato che l'assembly rappresenta un assembly di interoperabilità primario che supporta le versioni 4.2 e 5.2 della libreria dei tipi. Come illustrato nell'esempio, è possibile eseguire il wrapping di più versioni di una libreria dei tipi applicando attributi aggiuntivi a livello di assembly.
[assembly:AssemblyKeyFile(@"..\..\CompanyA.snk")] [assembly:Guid("97d25db0-0363-1cf-abc4-02608 c9e7553"] [assembly:PrimaryInteropAssembly(4, 2)] [assembly:PrimaryInteropAssembly(5, 2)]
Procedura: generare assembly di interoperabilità tramite Tlbimp.exe
Procedura: eseguire il wrapping di più versioni delle librerie dei tipi