ComClassAttribute 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
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
- 繼承
- 屬性
範例
要執行此範例,請建立一個新的 類別庫 應用程式,並將以下程式碼加入類別模組。
<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(String, String, String) |
初始化 |
| ComClassAttribute(String, String) |
初始化 |
| ComClassAttribute(String) |
初始化 |
屬性
| 名稱 | 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) |