看不到在 C# 中创建的属性的值

Can't see values of properties created in C#

早上好,

简介:

我的问题是关于 C# dll 和 VB6。它指的是为什么我看不到 C# 属性的值,但我可以在我的 VB6 项目中看到这些属性的相同值。

解释:

我使用 VS19(Visual Studio 2019)从 Windows 表单应用程序创建了一个 dll 文件和一个 tlb 文件。

我进入属性 -> 应用程序并将“输出类型”从“Windows 应用程序”更改为“Class 库”。之后,我点进了“程序集信息”,我在点的时候出现的window下面勾选了COM可见语音

之后我进入“编译”并选中底部的“Interop COM”复选框。

最后我编译了解决方案并将这两个文件移动到使用 Virtual Box 创建的虚拟机(Win XP 32 位 SP3)中。哪里有我用 VB6 开发的应用程序。

在我的 VB6 项目中,我可以设置和使用 .NET dll 的属性和方法,并且可以看到值(EOL 和 EOL 是我的 .NET classes)。

像这样:

    Vin_car_11 = Mid$(frmInput.txtVinCode.Text, 11, 1)

    Select Case Vin_car_11
        Case "2"
            EOL.XMLPrdWsUrl = "URL"    'Brescia
        Case "5"
            EOL.XMLPrdWsUrl = "URL"     'Suzzara
        Case "9"
            EOL.XMLPrdWsUrl = "URL"    'Bolzano
    End Select
    
    EOL.Vin = frmInput.txtVinCode.Text
    EOL.Van = frmInput.txtVanCode.Text
    
    returnCode = EOLs.GetXMLFile()

问题在这里:

为什么我在 VB6 中看到“EOL.vin”的值,但在 C# 中却看不到相同的值?

这里是我的 EOL 代码 class:

public class cEOL
{
    private string vin;
    public string Vin
    {
        get
        {
            return this.vin;
        }
        set
        {
            this.vin = value;
        }
    }

 }

这里是我的 EOL 代码 class:

public class cEOLs
{
    #region DICHIARAZIONI
    Vehicle.AuthHeader auth;
    cEOL EOL;

    string result;
    string errorDescr;
    #endregion

    #region COSTRUTTORE
    public cEOLs()
    {
        EOL = new cEOL();
        auth = new Vehicle.AuthHeader();

        result = "";
        errorDescr = "";
    }
    #endregion

    #region METODO
    public int GetXMLFile()
    {
        //chiave di autenticazione server rilasciato da EHSA (IVECO) 
        auth.AuthKey = "Key";

        var client = new Vehicle.EOLClientsAPI4EXT { Url = EOL.XMLPrdWsUrl };

        EOL.ReturnCode = client.GetProductionXML(EOL.Vin, EOL.Van, out result, out errorDescr);

        EOL.Result = result;
        EOL.ErrorDescr = errorDescr;

        return EOL.ReturnCode;
    }
    #endregion

提前致谢!我希望我的解释很清楚!

我通过简单地创建一个 returns 字符串的方法自己解决了它。 我记得在我的 VB6 项目中使用这种方法来设置 属性.

的值

这里是方法:

    public string ImpostaVIN(string vin)
    {
        EOL.Vin = vin;

        return EOL.Vin;
    }

这里是VB6中的调用:

EOL.Vin = EOLs.ImpostaVIN(string)