Condividi tramite


Procedura dettagliata: creazione di oggetti COM con Visual Basic

Aggiornamento: novembre 2007

Quando si creano applicazioni o componenti nuovi, è consigliabile creare assembly .NET Framework. Visual Basic semplifica tuttavia l'esposizione di un componente .NET Framework anche per COM. In questo modo è possibile fornire nuovi componenti per le suite di applicazioni precedenti che richiedono i componenti COM. In questa procedura dettagliata viene illustrato come utilizzare Visual Basic per esporre oggetti .NET Framework come oggetti COM, utilizzando o meno il modello della classe COM.

Il modo più semplice per esporre oggetti COM è quello di utilizzare il modello della classe COM. Tale modello consente di creare una nuova classe, quindi configurare il progetto per la creazione della classe e del layer di interoperabilità come oggetto COM e per la relativa registrazione nel sistema operativo.

Nota:

Sebbene sia possibile esporre come oggetto COM anche una classe creata con Visual Basic per consentirne l'utilizzo da parte del codice non gestito, non si tratta di un vero oggetto COM che non può essere usato da Visual Basic. Per ulteriori informazioni, vedere Interoperabilità COM nelle applicazioni .NET Framework.

Nota:

Le finestre di dialogo e i comandi di menu visualizzati potrebbero non corrispondere a quelli descritti nella Guida in linea in quanto dipendono dall'edizione o dalle impostazioni in uso. Per modificare le impostazioni, scegliere Importa/Esporta impostazioni dal menu Strumenti. Per ulteriori informazioni, vedere Impostazioni di Visual Studio.

Per creare un oggetto COM utilizzando il modello di classe COM

  1. Aprire un nuovo progetto Applicazione Windows scegliendo Nuovo progetto dal menu File.

  2. Nel campo Tipi progetto della finestra di dialogo Nuovo progetto verificare che sia selezionata la voce Windows. Selezionare Libreria di classi dall'elenco Modelli e fare clic su OK. Verrà visualizzato il nuovo progetto.

  3. Scegliere Aggiungi nuovo elemento dal menu Progetto. Verrà visualizzata la finestra di dialogo Aggiungi nuovo elemento.

  4. Selezionare Classe COM dall'elenco Modelli e fare clic su Aggiungi. Verrà aggiunta una nuova classe e configurato il nuovo progetto per l'interoperabilità COM.

  5. Aggiungere codice, ad esempio proprietà, metodi ed eventi alla classe COM.

  6. Selezionare Compila ClassLibrary1 dal menu Compila. Verrà compilato l'assembly e l'oggetto COM verrà registrato nel sistema operativo.

Creazione di oggetti COM senza il modello di classe COM

È anche possibile creare una classe COM manualmente, senza utilizzare il modello di classe COM. Questa procedura è utile quando si utilizza la riga di comando o quando si desidera un maggiore controllo sulla definizione degli oggetti COM.

Per impostare il progetto per la creazione di un oggetto COM

  1. Aprire un nuovo progetto Applicazione Windows dal menu File facendo clic su NuovoProgetto.

  2. Nel campo Tipi progetto della finestra di dialogo Nuovo progetto verificare che sia selezionata la voce Windows. Selezionare Libreria di classi dall'elenco Modelli e fare clic su OK. Verrà visualizzato il nuovo progetto.

  3. In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto e scegliere Proprietà. Verrà visualizzata la finestra Progettazione progetti.

  4. Fare clic sulla scheda Compila.

  5. Selezionare la casella di controllo Registra per interoperabilità COM.

Per impostare il codice della classe per la creazione di un oggetto COM

  1. In Esplora soluzioni fare doppio clic su Class1.vb per visualizzare il relativo codice.

  2. Rinominare la classe come ComClass1.

  3. Aggiungere a ComClass1 le costanti riportate di seguito che memorizzeranno le costanti GUID (Globally Unique Identifier) richieste negli oggetti COM.

    Public Const ClassId As String = ""
    Public Const InterfaceId As String = ""
    Public Const EventsId As String = ""
    
  4. Per ottenere un GUID (Globally Unique Identifier), avviare Guidgen.exe per eseguire l'utilità Guidgen. Selezionare l'opzione relativa al formato del registro dall'elenco dei formati fornito con l'applicazione Guidgen. Fare clic sul pulsante Nuovo GUID per generare il GUID, quindi sul pulsante Copia per copiare il GUID negli Appunti.

  5. Sostituire la stringa vuota relativa a ClassId con il GUID, rimuovendo le parentesi graffe di apertura e chiusura. Se il GUID fornito da Guidgen è, ad esempio, "{2C8B0AEE-02C9-486e-B809-C780A11530FE}" il codice deve essere simile a quello riportato di seguito.

    Public Const ClassId As String = "2C8B0AEE-02C9-486e-B809-C780A11530FE"
    
  6. Ripetere i passaggi precedenti per le costanti InterfaceId e EventsId, come nell'esempio che segue.

    Public Const InterfaceId As String = "3D8B5BA4-FB8C-5ff8-8468-11BF6BD5CF91"
    Public Const EventsId As String = "2B691787-6ED7-401e-90A4-B3B9C0360E31"
    
    Nota:

    Accertarsi che i GUID siano nuovi ed univoci. In caso contrario, potrebbe verificarsi un conflitto tra il componente COM e gli altri componenti COM.

  7. Aggiungere l'attributo ComClass a ComClass1, specificando i GUID per l'ID di classe, l'ID di interfaccia e gli ID di eventi, come nell'esempio seguente:

    <ComClass(ComClass1.ClassId, ComClass1.InterfaceId, ComClass1.EventsId)> _
    Public Class ComClass1
    
  8. Le classi COM devono avere un costruttore Public Sub New() senza parametri. In caso contrario, la classe non potrà essere registrata correttamente. Aggiungere un costruttore senza parametri alla classe:

    Public Sub New()
        MyBase.New()
    End Sub
    
  9. Aggiungere proprietà, metodi ed eventi alla classe, terminando con un'istruzione End Class. Selezionare Compila soluzione dal menu Compila. Verrà compilato l'assembly e l'oggetto COM verrà registrato nel sistema operativo.

    Nota:

    Gli oggetti COM generati con Visual Basic non possono essere utilizzati con altre applicazioni Visual Basic in quanto non sono veri oggetti COM. Se si cerca di aggiungere riferimenti a tali oggetti COM, verrà generato un errore. Per informazioni dettagliate, vedere Interoperabilità COM nelle applicazioni .NET Framework.

Vedere anche

Attività

Procedura dettagliata: implementazione dell'ereditarietà con gli oggetti COM

Risoluzione dei problemi relativi alla interoperabilità

Riferimenti

Classe ComClassAttribute

Direttiva #Region

Altre risorse

Interoperabilità COM

Interoperabilità COM nelle applicazioni .NET Framework