变量的C#MS VS WebReference类型
本文关键字:WebReference 类型 VS C#MS 变量 | 更新日期: 2023-09-27 18:27:31
我想从一个Web服务(这里是WSDL)中读取一个值。
我的代码在这里:
protected void Button1_Click(object sender, EventArgs e)
{
var ahoj = new string[] { 28156609.ToString() };
InformaceOPlatciType[] platceinfo;
mfcrDPH.rozhraniCRPDPH srv = new mfcrDPH.rozhraniCRPDPH();
StatusType status = srv.getStatusNespolehlivyPlatce(ahoj, out platceinfo);
for (int i = 0; i < platceinfo.Length; i++)
{
mfcrDPH.InformaceOPlatciType info = platceinfo[i];
Label1.Text = info.dic;
Label2.Text = info.nespolehlivyPlatce;
}
}
mfcrDPH是MS Visual Studio中的WebReference。
值info.nespolehlivyPlatce有问题。值info.dic工作正常。我不知道如何修复它,因为在WSDL中,我看到两个变量基本上是相同的——两者的类型都是简单的。
对于标签2.Text,我得到了一个错误:
错误3无法隐式转换类型"mfcrDPH.NespolehlivyPlatceType"到'string'D:''Tvorba''vs2010''WebTelefony''DPH''DHP_Dash2.aspx.cs 27 27 WebTelefony
这是带有图形信息的图片:图片1
有可能帮助我解决为什么我收到这种类型的错误消息吗?
阅读错误并尝试理解它
Label2.Text = info.nespolehlivyPlatce;
尝试将NespolehlivyPlatceType
类型的对象分配给不兼容的string
类型的属性。所以这是行不通的。
您需要在NespolehlivyPlatceType
类型上找到一个可以使用的属性。在XSD/WSDL中展开simpleType
,使用IntelliSense或检查对象浏览器,查看该类上哪些属性是字符串或可转换为字符串。例如:
Label2.Text = info.nespolehlivyPlatce.ID;
错误消息是由类型不匹配生成的。在Wsdl中,文档使用tns(此名称空间)引用字符串以外的类型。这就是为什么在代码中会出现类型转换错误的原因。您要么需要将类型从字符串更改为匹配wsql类型,要么需要对类型进行一些强制转换或转换