Procedura dettagliata: creazione di oggetti COM con Visual Basic

Quando si creano nuove applicazioni o componenti, è consigliabile creare assembly .NET Framework. Tuttavia, Visual Basic semplifica anche l'esposizione di un componente .NET Framework a COM. In questo modo è possibile fornire nuovi componenti per i gruppi di applicazioni precedenti che richiedono componenti COM. Questa procedura dettagliata illustra come usare Visual Basic per esporre oggetti .NET Framework come oggetti COM, sia con che senza il modello di classe COM.

Il modo più semplice per esporre gli oggetti COM consiste nell'usare il modello di classe COM. Questo modello crea una nuova classe, quindi configura il progetto per generare la classe con un livello di interoperabilità come oggetto COM e registrarlo con il sistema operativo.

Nota

Sebbene sia anche possibile esporre una classe creata in Visual Basic come oggetto COM per il codice non gestito da utilizzare, non è un vero oggetto COM e non può essere utilizzato da Visual Basic. Per altre informazioni, vedere Interoperabilità COM nelle applicazioni .NET Framework.

Nota

I nomi o i percorsi visualizzati per alcuni elementi dell'interfaccia utente di Visual Studio nelle istruzioni seguenti potrebbero essere diversi nel computer in uso. La versione di Visual Studio in uso e le impostazioni configurate determinano questi elementi. Per altre informazioni, vedere Personalizzazione dell'IDE.

Per creare un oggetto COM utilizzando il modello di classe COM

  1. Aprire un nuovo progetto applicazione Windows dal menu File facendo clic su Nuovo progetto.

  2. Nella finestra di dialogo Nuovo progetto nel campo Tipi di progetto selezionare Windows. Selezionare Libreria di classi dall'elenco Modelli e quindi fare clic su OK. Viene visualizzato il nuovo progetto.

  3. Selezionare Aggiungi nuovo elemento dal menu Progetto. La finestra di dialogo Aggiungi nuovo elemento viene visualizzata.

  4. Selezionare Classe COM dall'elenco Modelli e quindi fare clic su Aggiungi. Visual Basic aggiunge una nuova classe e configura il nuovo progetto per l'interoperabilità COM.

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

  6. Selezionare Compila ClasseLibrary1 dal menu Compila. Visual Basic compila l'assembly e registra l'oggetto COM con il sistema operativo.

Creazione di oggetti COM senza il modello di classe COM

È anche possibile creare manualmente una classe COM anziché usare il modello di classe COM. Questa procedura è utile quando si lavora dalla riga di comando o quando si desidera un maggiore controllo sulla modalità di definizione degli oggetti COM.

Per configurare il progetto per generare un oggetto COM

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

  2. Nella finestra di dialogo Nuovo progetto nel campo Tipi di progetto selezionare Windows. Selezionare Libreria di classi dall'elenco Modelli e quindi fare clic su OK. Viene visualizzato il nuovo progetto.

  3. In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto e scegliere Proprietà. Viene visualizzato Progettazione di progetti.

  4. Fare clic sulla scheda Compila.

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

Per configurare il codice nella classe per creare un oggetto COM

  1. In Esplora soluzioni, fare doppio clic su Class1.vb per visualizzarne il codice.

  2. Rinominare la classe in ComClass1.

  3. Aggiungere le costanti seguenti a ComClass1. Archivieranno le costanti GLOBAL Unique Identifier (GUID) necessarie per gli oggetti COM.

    Public Const ClassId As String = ""
    Public Const InterfaceId As String = ""
    Public Const EventsId As String = ""
    
  4. Scegliere Crea GUID dal menu Strumenti. Nella finestra di dialogo Crea GUID fare clic su Formato del Registro di sistema e quindi fare clic su Copia. Fare clic su Esci.

  5. Sostituire la stringa vuota per ClassId con il GUID, rimuovendo le parentesi graffe iniziali e finali. Ad esempio, se il GUID fornito da Guidgen è "{2C8B0AEE-02C9-486e-B809-C780A11530FE}", il codice dovrebbe essere visualizzato come segue.

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

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

    Nota

    Assicurarsi che i GUID siano nuovi e univoci; in caso contrario, il componente COM potrebbe entrare in conflitto con altri componenti COM.

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

    <ComClass(ComClass1.ClassId, ComClass1.InterfaceId, ComClass1.EventsId)>
    Public Class ComClass1
    
  8. Le classi COM devono avere un costruttore senza parametri Public Sub New() oppure la classe non verrà 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. Visual Basic compila l'assembly e registra l'oggetto COM con il sistema operativo.

    Nota

    Gli oggetti COM generati con Visual Basic non possono essere utilizzati da altre applicazioni Visual Basic perché non sono oggetti COM reali. I tentativi di aggiungere riferimenti a tali oggetti COM genereranno un errore. Per informazioni dettagliate, vedere interoperabilità COM nelle applicazioni .NET Framework.

Vedi anche