看不到在 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)
早上好,
简介:
我的问题是关于 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)