【问题标题】:How do I reference a Module in VB from a NuGet package如何从 NuGet 包中引用 VB 中的模块
【发布时间】:2019-10-30 13:47:39
【问题描述】:

我创建了自己的私有 NuGet 服务器并托管了两个用 VB 编写的包,一个带有一个公共类,一个带有一个包含一些扩展方法的模块。当我在我的应用程序中引用包时,我可以从包中创建类的新实例,但我无法使用模块中声明的任何方法。我知道模块需要包含在命名空间中,所以我觉得我可能需要在某个地方引用它才能使用它。有谁知道我需要做什么?谢谢。

我目前有以下内容:

Namespace TestHelperNamespace

    Public Class TestHelper

        Public Sub DoSomething()

        End Sub

    End Class

    Public Module TestModule

        Public Sub StringSub(s As String)

        End Sub

    End Module

End Namespace

【问题讨论】:

    标签: vb.net webforms nuget extension-methods


    【解决方案1】:

    在代码中导入模块的命名空间

    Imports NugetModuleNamespace
    

    这是一个 MCVE

    Imports Namespace2
    
    Namespace Namespace1
        Module Module1
            Private Sub foo()
                Dim a = 1.23#
                Dim b = a.Square() ' doesn't work without Imports
            End Sub
        End Module
    End Namespace
    
    Namespace Namespace2
        Module Module2
            <System.Runtime.CompilerServices.Extension>
            Public Function Square(value As Double) As Double
                Return value ^ 2
            End Function
        End Module
    End Namespace
    

    这也适用于单独文件中的模块。

    【讨论】:

    • 谢谢你,但我仍然在努力让它工作。我在问题中添加了更多内容,以显示我目前在 NuGet 包中拥有的内容。它只会让我导入 NuGet 模块的命名空间,而不是 TestHelperNamespace。
    • 我知道这不是示例中当前的扩展方法,但据我所知,它仍然可以调用。
    • @JoshuaBradbury 你在项目中有根命名空间吗? Imports RootNamespace.TestHelperNamespace呢?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多