变量的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

有可能帮助我解决为什么我收到这种类型的错误消息吗?

变量的C#MS VS WebReference类型

阅读错误并尝试理解它

Label2.Text = info.nespolehlivyPlatce;

尝试将NespolehlivyPlatceType类型的对象分配给不兼容的string类型的属性。所以这是行不通的。

您需要在NespolehlivyPlatceType类型上找到一个可以使用的属性。在XSD/WSDL中展开simpleType,使用IntelliSense或检查对象浏览器,查看该类上哪些属性是字符串或可转换为字符串。例如:

Label2.Text = info.nespolehlivyPlatce.ID;

错误消息是由类型不匹配生成的。在Wsdl中,文档使用tns(此名称空间)引用字符串以外的类型。这就是为什么在代码中会出现类型转换错误的原因。您要么需要将类型从字符串更改为匹配wsql类型,要么需要对类型进行一些强制转换或转换