Share via


Procedura dettagliata: creazione di oggetti COM con Visual Basic

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 (Visual Basic).

Nota

Nomi o 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 delle impostazioni di sviluppo in 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, quindi scegliere Aggiungi. In Visual Basic verrà aggiunta una nuova classe e verrà 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. In Visual Basic 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 Nuovo Progetto.

  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. Scegliere Crea GUID dal menu Strumenti. Nella finestra di dialogo Crea GUID fare clic sull'opzione relativa al formato del registro, quindi su Copia. Fare clic su Esci.

  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. Scegliere Compila soluzione dal menu Compila. In Visual Basic 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 (Visual Basic).

Vedere anche

Attività

Procedura dettagliata: implementazione dell'ereditarietà con gli oggetti COM (Visual Basic)

Risoluzione dei problemi relativi all'interoperabilità (Visual Basic)

Riferimenti

ComClassAttribute

Direttiva #Region

Altre risorse

Interoperabilità COM (Visual Basic)

Interoperabilità COM nelle applicazioni .NET Framework (Visual Basic)