Vb.net 与其他项目共享模块中的常量

Vb.net 与其他项目共享模块中的常量,vb.net,constants,vb.net-module,Vb.net,Constants,Vb.net Module,我有一个VB.NET类库项目,程序集名称为MyCompany.Constants,它只包含一个模块MyModule.VB: Public Module Constants Public Const Item1 As String = "Foo" Public Const Item2 As String = "Foo2" End Module 它的目的是在其他解决方案中的所有项目中共享它 因此,我添加了一个来自其他项目的引用,然后使用下面的表达式开始使用它: Imports My

我有一个VB.NET类库项目,程序集名称为MyCompany.Constants,它只包含一个模块MyModule.VB:

Public Module Constants

   Public Const Item1 As String = "Foo"
   Public Const Item2 As String = "Foo2"

End Module
它的目的是在其他解决方案中的所有项目中共享它

因此,我添加了一个来自其他项目的引用,然后使用下面的表达式开始使用它:

Imports MyCompany.Constants
因此,我可以通过执行以下操作来使用它:

var foo = Constants.Item1
但上面的导入表达式抛出一个错误,表示:

导入“MyCompany.Constants”中指定的命名空间或类型 不包含任何公共成员

那么我该如何面对这个问题呢?如何在我的其他项目中通过添加对模块的引用来使用模块中定义的公共常量?

尝试以下方法:

Imports MyCompany

Module Module1

    Sub Main()

        Dim test As String = MyCompany.Constants.Item1

        Console.WriteLine(test)
        Console.ReadKey()

    End Sub

End Module

尝试使用类,而不是使用模块。如果目的是使其成为常量,则应如下所示

Public Class Constants
    Public Shared ReadOnly Item1 As String = "Foo"
    Public Shared ReadOnly Item2 As String = "Foo2"
End Class

由于项目是共享的,因此不必实例化该类。

如果我删除导入并执行常量,则删除
导入
?@GSerg。Item1会显示一个错误,说明“Item1”不是“Microsoft.VisualBasic.Constants”的成员。那么,我如何判断编译器Item1是我的程序集MyCompany.Constants的成员呢?请删除
导入
并使用
MyCompany.Constants.Item1
,或者将导入更改为
导入MyCompany
并使用
常量.Item1
?如果引用了Microsoft.VisualBasic,就可以了。默认情况下会导入它(项目属性-引用-导入的名称空间)。默认情况下,所有VB项目都会导入它,并且不会阻止它。创建两个新项目,一个类库和一个控制台。将常量放入类库并编译。从控制台引用dll。将
导入MyCompany
添加到控制台。它有用吗?