gpt4 book ai didi

.net - 我们如何向 COM 互操作公开 .NET 公共(public)常量

转载 作者:行者123 更新时间:2023-12-04 12:32:13 25 4
gpt4 key购买 nike

由于历史原因,我们需要通过 COM 接口(interface)在 .NET 中公开字符串常量。

我们设法公开了 ENUM,但找不到公开字符串常量的方法。

我们尝试下面的代码:

<ComClass(ComClass1.ClassId, ComClass1.InterfaceId, ComClass1.EventsId)> _
Public Class ComClass1

#Region "COM GUIDs"
' These GUIDs provide the COM identity for this class
' and its COM interfaces. If you change them, existing
' clients will no longer be able to access the class.
Public Const ClassId As String = "608c6545-977e-4260-a3cf-11545c82906a"
Public Const InterfaceId As String = "12b8a6c7-e7f6-4022-becd-2efd8b3a756e"
Public Const EventsId As String = "05a2856f-d877-4673-8ea8-20f5a9f268d5"
#End Region

' A creatable COM class must have a Public Sub New()
' with no parameters, otherwise, the class will not be
' registered in the COM registry and cannot be created
' via CreateObject.
Public Sub New()
MyBase.New()
End Sub

Public Const chaine As String = "TEST"

Public Sub Method()

End Sub

End Class

但是当我们查看 OLE 对象查看器时,我们只看到了方法。

有人有想法吗?

谢谢,

最佳答案

如果您遇到常量方面的问题,您总是可以只声明一个只读的 getter 来返回每个常量。

编辑:在下面添加了一些可能相关的信息

引自以下链接:

Visual Basic 不提供将此类值作为公共(public)常量添加到类型库的机制,但您可以使用具有只读属性的全局对象获得类似的效果。

http://msdn.microsoft.com/en-us/library/aa716309%28VS.60%29.aspx

虽然这句话是关于 VB6 的,但它可能是同一个问题,并且至少可以为您提供更多信息。

关于.net - 我们如何向 COM 互操作公开 .NET 公共(public)常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2855871/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com