ComClassAttribute 類別

定義

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

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
屬性

範例

若要執行此範例,請建立新的 Class Library 應用程式,並將下列程式代碼新增至類模組。

    <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 Interop] 選項來編譯專案。

注意

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

建構函式

ComClassAttribute()

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

ComClassAttribute(String)

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

ComClassAttribute(String, String)

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

ComClassAttribute(String, String, String)

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

屬性

ClassID

取得用來唯一識別類別的類別 ID。

EventID

取得用來唯一識別事件的事件 ID。

InterfaceID

取得用來唯一識別介面的介面 ID。

InterfaceShadows

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

TypeId

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

(繼承來源 Attribute)

方法

Equals(Object)

傳回值,這個值指出此執行個體是否與指定的物件相等。

(繼承來源 Attribute)
GetHashCode()

傳回這個執行個體的雜湊碼。

(繼承來源 Attribute)
GetType()

取得目前執行個體的 Type

(繼承來源 Object)
IsDefaultAttribute()

在衍生類別中覆寫時,表示這個執行個體的值是衍生類別的預設值。

(繼承來源 Attribute)
Match(Object)

在衍生類別中覆寫時,會傳回值,表示這個執行個體是否等於指定物件。

(繼承來源 Attribute)
MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
ToString()

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

(繼承來源 Object)

明確介面實作

_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)

適用於

另請參閱