我对.Net web服务编程非常陌生。我在读取web服务到我的客户端的XML响应时遇到了麻烦。
在我的webservice端: Service1.asmx.cs代码:
[WebMethod(Description = "substruction")]
public double subtract(double i, double j)
{
return i - j;
}
[WebMethod(Description = "getxml")]
public XmlDocument GetXML()
{
StringBuilder sb = new StringBuilder();
XmlWriter writer = XmlWriter.Create(sb);
writer.WriteStartDocument();
writer.WriteStartElement("People");
writer.WriteStartElement("Person");
writer.WriteAttributeString("Name", "Nick");
writer.WriteEndElement();
writer.WriteStartElement("Person");
writer.WriteStartAttribute("Name");
writer.WriteValue("Kevin");
writer.WriteEndAttribute();
writer.WriteEndElement();
writer.WriteEndElement();
writer.WriteEndDocument();
writer.Flush();
XmlDocument xmlDocument = new XmlDocument();
xmlDocument.LoadXml(sb.ToString());
return xmlDocument;
}在这里,我创建了两个测试响应的方法。在GetXML中,我创建了一个非常简单的XML,并将包XML返回给客户端。
在我的客户端:
// Add button click function
protected void Button1_Click(object sender, EventArgs e)
{
string selectFlag = selectOper.Value;
localhost.Service1 web = new localhost.Service1(); // Have to be the same name as youre Service1.
if (selectFlag.Equals("+"))
{
Result.Text = (web.addition(double.Parse(Num1.Text), double.Parse(Num2.Text))).ToString();
}
else if (selectFlag.Equals("-"))
{
Result.Text = (web.subtract(double.Parse(Num1.Text), double.Parse(Num2.Text))).ToString();
}
}
protected void Button2_Click(object sender, EventArgs e)
{
localhost.Service1 web2 = new localhost.Service1(); // Can u please do not be so silly, use different instance name here.
Button clickedButton = (Button)sender;
XmlDocument xmltest = new XmlDocument();
xmltest = web2.GetXML();您可以看到,我试图获取web2.GetXML(),将整个XML导入XmlDoucment。但是,它说错误1不能隐式地将类型'object‘转换为'System.Xml.XmlDocument’。存在显式转换(是否缺少强制转换?)C:\文档和设置\qili\我的Documents\Downloads\WebService3\WebService2\WebService2\Default.aspx.cs 39 24 WebService2
任何提示,我想我做错了什么。但是Buttom1_Click方法工作得很好。
发布于 2012-04-17 09:26:50
尝试转换服务的响应:
protected void Button2_Click(object sender, EventArgs e)
{
localhost.Service1 web2 = new localhost.Service1(); // Can u please do not be so silly, use different instance name here.
Button clickedButton = (Button)sender;
XmlDocument xmltest = new XmlDocument();
xmltest = (XmlDocument)web2.GetXML();
}发布于 2015-11-02 07:15:25
您应该尝试删除服务引用,重新运行服务,并在客户端上添加服务引用。
https://stackoverflow.com/questions/10188517
复制相似问题