ComClassAttribute 類別

定義

ComClassAttribute 屬性會指示編譯程式新增元數據,以允許將類別公開為 COM 物件。

public ref class ComClassAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)]
public sealed class ComClassAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=false)>]
type ComClassAttribute = class
    inherit Attribute
Public NotInheritable Class ComClassAttribute
Inherits Attribute
繼承
ComClassAttribute
屬性

範例

要執行此範例,請建立一個新的 類別庫 應用程式,並將以下程式碼加入類別模組。

    <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

備註

使用 ComClassAttribute 來簡化從 Visual Basic 暴露 COM 元件的過程。 COM 物件與 .NET Framework 組件非常不同;若沒有 ComClassAttribute,則需依照多項步驟從 Visual Basic 產生 COM 物件。 對於標記為 ComClassAttribute的類別,編譯器會自動執行許多這些步驟。

備註

此屬性簡化了 COM 物件的建立。 若要將類別暴露為 COM 物件,您必須在組態屬性對話框的建置區段中選擇「註冊 COM 互操作登錄」選項來編譯專案。

備註

雖然你也可以將用 Visual Basic 建立的類別作為非管理程式碼的 COM 物件公開,但它並非真正的 COM 物件。 如需詳細資訊,請參閱 .NET Framework 應用程式中的 COM 互作性

建構函式

名稱 Description
ComClassAttribute()

初始化 ComClassAttribute 類別的新執行個體。

ComClassAttribute(String, String, String)

初始化 ComClassAttribute 類別的新執行個體。

ComClassAttribute(String, String)

初始化 ComClassAttribute 類別的新執行個體。

ComClassAttribute(String)

初始化 ComClassAttribute 類別的新執行個體。

屬性

名稱 Description
ClassID

會有一個類別 ID 用來唯一識別類別。

EventID

會獲得一個事件 ID,用來唯一識別事件。

InterfaceID

會獲得一個介面 ID,用來唯一識別介面。

InterfaceShadows

表示 COM 介面名稱會遮蔽類別或基底類別的另一個成員。

TypeId

在衍生類別中實作時,取得這個 Attribute的唯一標識碼。

(繼承來源 Attribute)

方法

名稱 Description
Equals(Object)

傳回值,這個值表示這個實例是否等於指定的物件。

(繼承來源 Attribute)
GetHashCode()

傳回這個實例的哈希碼。

(繼承來源 Attribute)
GetType()

取得目前實例的 Type

(繼承來源 Object)
IsDefaultAttribute()

在衍生類別中覆寫時,指出這個實例的值是否為衍生類別的預設值。

(繼承來源 Attribute)
Match(Object)

在衍生類別中覆寫時,傳回值,指出這個實例是否等於指定的物件。

(繼承來源 Attribute)
MemberwiseClone()

建立目前 Object的淺層複本。

(繼承來源 Object)
ToString()

傳回表示目前 物件的字串。

(繼承來源 Object)

明確介面實作

名稱 Description
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

將一組名稱對應至一組對應的分派識別項 (Dispatch Identifier)。

(繼承來源 Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

擷取 物件的型別資訊,可用來取得介面的類型資訊。

(繼承來源 Attribute)
_Attribute.GetTypeInfoCount(UInt32)

擷取物件提供的類型資訊介面數目 (0 或 1)。

(繼承來源 Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

提供物件所公開屬性和方法的存取權。

(繼承來源 Attribute)

適用於

另請參閱