2014-06-22 1 views
1

Visual Studio에서 #C를 사용하여 웹 서비스 클라이언트를 만들고 웹 서비스에 액세스하려고하지만 프록시 클래스를 사용하는 일부 문제가 있습니다. 웹 서비스에서 만들었습니다.프록시 클래스의 메서드에 액세스 (Visual Studio에서 C#을 사용하여 웹 서비스 사용)

프록시 클래스의 메소드에 액세스하여 웹 페이지의 메소드에서 반환 된 값을 표시하려고합니다.

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.cs에

/// <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)); 
     } 
    } 
} 

나는이 내용이 :

이 클래스와 I가 액세스 할 노력하고있어 방법은 RaceDaySimple [] raceDay입니다 경주의 날을 반환하고 WebForm1.aspx에 표시하려고합니다. 우선은 함께 노력 :

다음
test.InnerHtml = pbs.fetchRaceDayCalendarSimple().raceDay; 

". pbs.fetchRaceDayCalendarSimple() raceDay;" 밑줄이 그어져 뭔가 잘못 됐음을 이해합니다.

test.InnerHtml = Convert.ToString(pbs.fetchRaceDayCalendarSimple().raceDay); 

그래서 "테스트"페이지 WebForm1.aspx를에 DIV ID입니다 :

Cannot implicitly convert 'WebServiceClient.InformationServiceReference.RaceDaySimple[]' to 'String' 

그래서 내가 대신 이렇게해야 그림 : 그것은 유혹 할 때 나는 오류 메시지가

테스트 :

<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 []

만 메소드의 이름이 표시됩니다,하지만 난 방법을 수행하고 그 경쟁 일 표시하는 것입니다 무엇을 표시하는 방법을 원한다. 그러면 어떻게해야합니까?

답변

1

오류가 발생하면 RaceDaySimple 목록에 하나의 항목이 표시되지 않습니다. 그래서 목록

test.InnerHtml = pbs.fetchRaceDayCalendarSimple().FirstOrDefault().raceDay; 
+0

OK의 첫 번째 항목을 사용하려고 노력하지만, 지금은 오류 얻을 : 'WebServiceClient.InformationServiceReference.RaceDayCalendarSimple는'FirstOrDefault '없이 확장 방법에 대한 정의를 포함하지 않는'FirstOrDefault '첫 번째를 받아들이 'WebServiceClient.InformationServiceReference.RaceDayCalendarSimple'형식의 인수를 찾을 수 있습니다 (사용 지시문이나 어셈블리 참조가 누락 되었습니까?) – user3764894

+0

System.Linq; 파일의 맨 위에. 또 다른 옵션은 .FirstOrDefault()를 [0]으로 변경하는 것입니다. –