如何访问C#项目中引用的VB.Net模块中的公共变量?

new9mtju  于 2023-01-14  发布在  .NET
关注(0)|答案(1)|浏览(124)

我有一个Visual Studio 2013解决方案,其中包含一个VB.Net项目(GL 2015-编译为DLL)和C#项目(PBIS -编译为Windows窗体)。GL 2015 VB .NET DLL在我的PBIS C#项目中引用。基本上,我将VB .NET应用程序合并到我的C#应用程序中。VB .NET(GL 2015)项目有模块,其中一个模块只包含全局变量。我取了它的输入表单并在我的C#项目中创建了一个。在我的C#应用程序中移植表单的代码时,我注意到它引用了这些全局变量。
这是我的问题。我如何从VB .NET模块中的C#项目引用这些“全局”变量?
VB.Net GL 2015项目全局_填充.vb

Public Module Global_Stuff

'These items should be populated by PBIS data:
Public CustomerName, CustomerLocation, EndUser, EndUserLocation, Application, PurchaseOrderNumber, JobProposalNumber, ItemNumber As String

Public MaterialsList As List(Of String)
Public ApplicationsPath, MaterialPropertiesFile, ETODBConnectionString As String
Public ErrorMessage As String
Public ExistingProposal, JobMode, ExistingJob As Boolean
End Module

C# PBIS项目GL2015Form.cs

using GL2015;
...
Global_Stuff.ApplicationsPath = nodeToFind.InnerText;
...
MaterialPropertiesFile = nodeToFind.InnerText;

我申请了GL 2015;指令,但无法引用Global_Stuff模块。这意味着我必须在VB .NET项目中引用的所有全局变量前面插入“Global_Stuff.”(请参见ApplicationsPath)。
有没有什么方法可以在VB.NET项目模块中引用这些全局变量,而不必在我的C#项目中限定它们。在我的C#项目中,有超过100个全局变量被引用了700多次。

8hhllhi2

8hhllhi21#

我在VB.Net中使用模块来存储数据库名称,为什么?我厌倦了在其他窗体上键入数据库名称,所以当我转到C#时,什么没有模块下面是我使用C#的WinForms的分步解决方案
创建两个表单主条目表单是frmStart我的第二个表单是frmDataModule下面是frmDataModule中的代码

public partial class DataModule : Form
{
    public DataModule()
    {
        InitializeComponent();  
    }
}
public class DBName
{
    // gv_dbName is used on frmStart
    public const string gv_dbName = "CheckBook.db";

}

下面是frmStart上使用公共常量的代码

public void MyMethod()
    {
        string textToAdd = gv.strDatabase;
        {
            using (StreamWriter sw = File.AppendText(path))
            sw.Write(textToAdd + Environment.NewLine);
        }
    }

是的,这是一个老问题,我希望最新的答案是有帮助的

相关问题