Procedura dettagliata: Creazione di oggetti COM con Visual BasicWalkthrough: Creating COM Objects with Visual Basic

Quando si creano nuove applicazioni o componenti, è consigliabile creare gli assembly di .NET Framework.When creating new applications or components, it is best to create .NET Framework assemblies. Tuttavia, Visual Basic semplifica per esporre un componente di .NET Framework a COM.However, Visual Basic also makes it easy to expose a .NET Framework component to COM. In questo modo è possibile fornire nuovi componenti per la suite di applicazioni precedenti che richiedono i componenti COM.This enables you to provide new components for earlier application suites that require COM components. Questa procedura dettagliata illustra come usare Visual Basic per esporre gli oggetti di .NET Framework come oggetti COM, con e senza il modello di classe COM.This walkthrough demonstrates how to use Visual Basic to expose .NET Framework objects as COM objects, both with and without the COM class template.

Per esporre gli oggetti COM in modo semplice consiste nell'usare il modello di classe COM.The easiest way to expose COM objects is by using the COM class template. Il modello di classe COM consente di creare una nuova classe e quindi Configura il progetto per generare il livello di classe e l'interoperabilità come un oggetto COM e registrarla con il sistema operativo.The COM class template creates a new class, and then configures your project to generate the class and interoperability layer as a COM object and register it with the operating system.

Nota

Sebbene sia possibile esporre anche una classe creata in Visual Basic come oggetto COM per codice non gestito da usare, non è un vero oggetto COM e non può essere utilizzato da Visual Basic.Although you can also expose a class created in Visual Basic as a COM object for unmanaged code to use, it is not a true COM object and cannot be used by Visual Basic. Per altre informazioni, vedere interoperabilità COM nelle applicazioni .NET Framework.For more information, see COM Interoperability in .NET Framework Applications.

Nota

Nomi o percorsi visualizzati per alcuni elementi dell'interfaccia utente di Visual Studio nelle istruzioni seguenti potrebbero essere diversi nel computer in uso.Your computer might show different names or locations for some of the Visual Studio user interface elements in the following instructions. La versione di Visual Studio in uso e le impostazioni configurate determinano questi elementi.The Visual Studio edition that you have and the settings that you use determine these elements. Per altre informazioni, vedere Personalizzazione dell'IDE.For more information, see Personalizing the IDE.

Per creare un oggetto COM usando il modello di classe COMTo create a COM object by using the COM class template

  1. Aprire un nuovo progetto di applicazione di Windows dal File menu, fare clic su nuovo progetto.Open a new Windows Application project from the File menu by clicking New Project.

  2. Nel nuovo progetto nella finestra di dialogo il tipi di progetto campo, verificare che Windows sia selezionato.In the New Project dialog box under the Project Types field, check that Windows is selected. Selezionare libreria di classi dalle modelli elenco e quindi fare clic su OK.Select Class Library from the Templates list, and then click OK. Viene visualizzato il nuovo progetto.The new project is displayed.

  3. Selezionare Aggiungi nuovo elemento dalle progetto menu.Select Add New Item from the Project menu. Verrà visualizzata la finestra di dialogo Aggiungi nuovo elemento.The Add New Item dialog box is displayed.

  4. Selezionare classe COM dalle modelli elenco e quindi fare clic su Add.Select COM Class from the Templates list, and then click Add. Visual Basic consente di aggiungere una nuova classe e configura il nuovo progetto per l'interoperabilità COM.Visual Basic adds a new class and configures the new project for COM interop.

  5. Aggiungere il codice, ad esempio proprietà, metodi ed eventi della classe COM.Add code such as properties, methods, and events to the COM class.

  6. Selezionare Compila ClassLibrary1 dalle compilazione menu.Select Build ClassLibrary1 from the Build menu. Visual Basic compilato l'assembly e registra l'oggetto COM con il sistema operativo.Visual Basic builds the assembly and registers the COM object with the operating system.

Creazione di oggetti COM senza il modello classe COMCreating COM Objects without the COM Class Template

È anche possibile creare una classe COM anziché manualmente usando il modello di classe COM.You can also create a COM class manually instead of using the COM class template. Questa procedura è utile quando si lavora dalla riga di comando o se si desidera maggiore controllo sul modo in cui sono definiti gli oggetti COM.This procedure is helpful when you are working from the command line or when you want more control over how COM objects are defined.

Per configurare il progetto per generare un oggetto COMTo set up your project to generate a COM object

  1. Aprire un nuovo progetto di applicazione di Windows dal File menu, fare clic su NewProject.Open a new Windows Application project from the File menu by clicking NewProject.

  2. Nel nuovo progetto nella finestra di dialogo il tipi di progetto campo, verificare che Windows sia selezionato.In the New Project dialog box under the Project Types field, check that Windows is selected. Selezionare libreria di classi dalle modelli elenco e quindi fare clic su OK.Select Class Library from the Templates list, and then click OK. Viene visualizzato il nuovo progetto.The new project is displayed.

  3. In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto e scegliere Proprietà.In Solution Explorer, right-click your project, and then click Properties. Il Progettazione progetti viene visualizzato.The Project Designer is displayed.

  4. Fare clic sulla scheda Compila.Click the Compile tab.

  5. Selezionare il Registra per interoperabilità COM casella di controllo.Select the Register for COM Interop check box.

Per configurare il codice nella classe per creare un oggetto COMTo set up the code in your class to create a COM object

  1. Nelle Esplora soluzioni, fare doppio clic su Class1.vb per visualizzare il relativo codice.In Solution Explorer, double-click Class1.vb to display its code.

  2. Rinominare la classe come ComClass1.Rename the class to ComClass1.

  3. Aggiungere le costanti seguenti al ComClass1.Add the following constants to ComClass1. Si archivierà le costanti di identificatore univoco globale (GUID) che sono necessari affinché gli oggetti COM.They will store the Globally Unique Identifier (GUID) constants that the COM objects are required to have.

    Public Const ClassId As String = ""
    Public Const InterfaceId As String = ""
    Public Const EventsId As String = ""
    
  4. Scegliere Crea GUID dal menu Strumenti.On the Tools menu, click Create Guid. Nella finestra di dialogo Crea GUID fare clic su Formato del Registro di sistema e quindi fare clic su Copia.In the Create GUID dialog box, click Registry Format and then click Copy. Fare clic su Esci.Click Exit.

  5. Sostituire la stringa vuota per il ClassId con il GUID, rimuovendo le iniziali e finali dalle parentesi graffe.Replace the empty string for the ClassId with the GUID, removing the leading and trailing braces. Ad esempio, se il GUID fornito da Guidgen è "{2C8B0AEE-02C9-486e-B809-C780A11530FE}" quindi il codice deve apparire come segue.For example, if the GUID provided by Guidgen is "{2C8B0AEE-02C9-486e-B809-C780A11530FE}" then your code should appear as follows.

    Public Const ClassId As String = "2C8B0AEE-02C9-486e-B809-C780A11530FE"
    
  6. Ripetere i passaggi precedenti per il InterfaceId e EventsId costanti, come nell'esempio seguente.Repeat the previous steps for the InterfaceId and EventsId constants, as in the following example.

    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 potrebbero essere in conflitto con altri componenti COM.Make sure that the GUIDs are new and unique; otherwise, your COM component could conflict with other COM components.

  7. Aggiungere il ComClass dell'attributo ComClass1, che specifica il GUID per l'ID della classe, l'ID di interfaccia e gli ID di eventi come nell'esempio seguente:Add the ComClass attribute to ComClass1, specifying the GUIDs for the Class ID, Interface ID, and Events ID as in the following example:

    <ComClass(ComClass1.ClassId, ComClass1.InterfaceId, ComClass1.EventsId)>
    Public Class ComClass1
    
  8. Classi COM devono avere un costruttore Public Sub New() costruttore o classe non registrerà correttamente.COM classes must have a parameterless Public Sub New() constructor, or the class will not register correctly. Aggiungere un costruttore senza parametri alla classe:Add a parameterless constructor to the class:

    Public Sub New()
        MyBase.New()
    End Sub
    
  9. Aggiungere le proprietà, metodi ed eventi alla classe, che termina con un End Class istruzione.Add properties, methods, and events to the class, ending it with an End Class statement. Selezionare Compila soluzione dalle compilazione menu.Select Build Solution from the Build menu. Visual Basic compilato l'assembly e registra l'oggetto COM con il sistema operativo.Visual Basic builds the assembly and registers the COM object with the operating system.

    Nota

    Gli oggetti COM che è generare con Visual Basic non possono essere utilizzati da altre applicazioni Visual Basic perché non sono oggetti COM true.The COM objects you generate with Visual Basic cannot be used by other Visual Basic applications because they are not true COM objects. I tentativi di aggiungere i riferimenti a tali oggetti COM genererà un errore.Attempts to add references to such COM objects will raise an error. Per informazioni dettagliate, vedere interoperabilità COM nelle applicazioni .NET Framework.For details, see COM Interoperability in .NET Framework Applications.

Vedere ancheSee also