【发布时间】:2020-05-02 09:56:13
【问题描述】:
我在 C# 中有一个必须在 VB 中初始化的数组。初始化时出现错误“函数或接口标记为受限,或函数使用 Visual Basic 不支持的自动化类型。”
C#.Net 代码:
public class InventoryMasterSearchSettings
{
public string[] PrintLabelsIDetail { get; set; }
}
VB.Net 代码:
Public Property PrintLabelsIDetail() As String()
Get
PrintLabelsIDetail = mInventoryMasterSearchSettings.PrintLabelsIDetail
End Get
Set(value As String())
mInventoryMasterSearchSettings.PrintLabelsIDetail = value
End Set
End Property
VB6
Public Sub ShowPrintLabels(invmast() As String, bShowAvailableInventoryOnlyPar As Boolean, Optional fCalledFromScreen As Form, Optional sVendorIDPar As String, Optional sUPCCodePar As String, Optional sInventoryDescriptionPar As String)
Dim oInventoryMasterSearchSettings As New Shared_Interop.InventoryMasterSearchSettings
oInventoryMasterSearchSettings.PrintLabelsIDetail = invmast 'error on PrintLabelsIDetail
End Sub
【问题讨论】:
-
我认为您有一个未注册的旧 Active X 类。 Microsoft 在 2004 年左右淘汰了 Active X。如果将这些方法添加到机器注册表中,它们仍然可以使用。您似乎正在尝试将一个非常旧的 VB6 项目升级到 VB.Net 并收到此错误。
-
我现在该如何解决这个问题?
-
您必须找到包含 Shared_Interop 的 dll(库),然后注册该库。
-
Shared_Interop是 C# 中的命名空间吗?