共用方式為


ComClassAttribute 類別

更新:2007 年 11 月

ComClassAttribute 屬性 (Attribute) 會指示編譯器加入能將類別公開成 COM 物件的中繼資料 (Metadata)。

<System.AttributeUsage(System.AttributeTargets.Class, _
   Inherited := False, AllowMultiple := False)> _
Public NotInheritable Class ComClassAttribute
   Inherits System.Attribute

備註

使用 ComClassAttribute,簡化從 Visual Basic 公開 COM 元件的程序。COM 物件與 .NET Framework 組件之間的差異極大,如果沒有 ComClassAttribute,您必須遵循一些步驟從 Visual Basic 產生 COM 物件。至於標記為 ComClassAttribute 的類別,編譯器會自動執行這些步驟。

注意事項:

這個屬性能簡化 COM 物件的建立。若要將類別公開成 COM 物件,則必須在 [組態屬性] 對話方塊的 [組建] 區段中,選取 [註冊 COM Interop] 選項,以編譯專案。

注意事項:

雖然也可將使用 Visual Basic 建立的類別公開為 COM 物件,以供 Unmanaged 程式碼使用,但它不是真正的 COM 物件。如需詳細資訊,請參閱 .NET Framework 應用程式中的 COM 互通性

範例

若要執行這個範例,請建立新的 [類別庫] 應用程式,並將下列程式碼加入至類別模組中。

    <ComClass(ComClass1.ClassId, ComClass1.InterfaceId, ComClass1.EventsId)> _
    Public Class ComClass1
        ' Use the Region directive to define a section named COM Guids. 
#Region "COM GUIDs"
        ' These  GUIDs provide the COM identity for this class 
        ' and its COM interfaces. You can generate 
        ' these guids using guidgen.exe
        Public Const ClassId As String = "7666AC25-855F-4534-BC55-27BF09D49D46"
        Public Const InterfaceId As String = "54388137-8A76-491e-AA3A-853E23AC1217"
        Public Const EventsId As String = "EA329A13-16A0-478d-B41F-47583A761FF2"
#End Region

        Public Sub New()
            MyBase.New()
        End Sub

        Function AddNumbers(ByVal X As Integer, ByVal Y As Integer)
            AddNumbers = X + Y
        End Function
    End Class

需求

命名空間 (Namespace)︰Microsoft.VisualBasic

組件 (Assembly):Visual Basic Runtime Library (在 Microsoft.VisualBasic.dll 中)

請參閱

工作

逐步解說:使用 Visual Basic 建立 COM 物件

概念

套用 Interop 屬性

Visual Basic 所用的屬性

參考

ComClassAttribute 類別成員

VBFixedArrayAttribute 類別

VBFixedStringAttribute 類別

System.Runtime.InteropServices

其他資源

Visual Basic 中的屬性