【发布时间】:2014-06-22 15:20:02
【问题描述】:
我正在尝试在 Visual Studio 中构建一个 Web 服务客户端并使用 #C 访问一个 Web 服务,但是我在使用从 Web 服务创建的代理类时遇到了一些问题。
我正在尝试访问代理类中的方法并在网页上显示该方法返回的值。
这是我试图访问的类和方法是 RaceDaySimple[] raceDay:
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.18408")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="java:se.atg.aisbean.calendar")]
public partial class RaceDayCalendarSimple : object, System.ComponentModel.INotifyPropertyChanged {
private RaceDaySimple[] raceDayField;
private AtgDateTime timestampField;
/// <remarks/>
[System.Xml.Serialization.XmlArrayAttribute(IsNullable=true, Order=0)]
/*Access this method ==>*/public RaceDaySimple[] raceDay {
get {
return this.raceDayField;
}
set {
this.raceDayField = value;
this.RaisePropertyChanged("raceDay");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(IsNullable=true, Order=1)]
public AtgDateTime timestamp {
get {
return this.timestampField;
}
set {
this.timestampField = value;
this.RaisePropertyChanged("timestamp");
}
}
public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
protected void RaisePropertyChanged(string propertyName) {
System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
if ((propertyChanged != null)) {
propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
}
}
}
在 WebForm1.aspx.cs 我有这个内容:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace WebServiceClient
{
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
InformationServiceReference.PartnerInfoServicePortClient pbs = new InformationServiceReference.PartnerInfoServicePortClient();
pbs.ClientCredentials.UserName.UserName = "SomeUsername";
pbs.ClientCredentials.UserName.Password = "SomePassword";
test.InnerHtml = Convert.ToString(pbs.fetchRaceDayCalendarSimple().raceDay);
}
}
}
这个方法将返回一个比赛日,我试图在 WebForm1.aspx 上显示它。首先我尝试了:
test.InnerHtml = pbs.fetchRaceDayCalendarSimple().raceDay;
然后是“pbs.fetchRaceDayCalendarSimple().raceDay;”有下划线,所以我知道出了点问题。将鼠标悬停在它上面时,我收到错误消息:
Cannot implicitly convert 'WebServiceClient.InformationServiceReference.RaceDaySimple[]' to 'String'
所以我想我应该这样做:
test.InnerHtml = Convert.ToString(pbs.fetchRaceDayCalendarSimple().raceDay);
所以“test”是WebForm1.aspx页面上的div id:
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<h1>Test:</h1>
<div id="test" runat="server"></div>
</div>
</form>
</body>
</html>
那么在加载 WebForm1.aspx 时,会显示如下内容:
测试:
WebServiceClient.InformationServiceReference.RaceDaySimple[]
只显示方法的名称,但我希望方法显示方法的作用,即显示比赛日。那我该怎么做呢?
【问题讨论】:
标签: c# web-services visual-studio proxy-classes