2011-04-01 9 views
1

WebService를 만들었습니다.WebService 호출 문제

[WebMethod]  
     public void GetCommission(ArrayList Loc) 
     { 
     } 

이제 서비스를 호출하려고합니다. XML 오류가 발생합니다. 스냅 샷을 참조하십시오. enter image description here

[XmlInclude(typeof(BOLibrary.Flight.DTContract))] 
    [SoapInclude(typeof(BOLibrary.Flight.DTContract))] 
    protected void btn_click(object sender, EventArgs e) 
    { 
     ArrayList boArrayList = getList(); 
     Object[] obj = boArrayList.ToArray(); 

     CommissionService service = new CommissionService(); 
     service.GetCommission(obj); 
} 

제발 도와주세요 .. 이것의 해결책은 무엇

..

enter image description here

+1

실제 오류에 대한 자세한 내용을 제공하지 않을 경우 답변하기가 어렵습니다. 예외의 "InnerException"속성을 살펴보십시오. –

+0

@Ulrik : InnerException은 { "BOLibrary.Flight.DTContract 유형이 예상되지 않았습니다 .XmlInclude 또는 SoapInclude 특성을 사용하여 정적으로 알 수없는 유형을 지정하십시오."} 사용했지만 여전히 작동하지 않습니다. – Shivi

+0

주십시오. 내 편집 된 질문을 참조하십시오. – Shivi

답변

0

당신은 잘못된 장소에서 [XmlInclude] 속성을 가하고 있습니다. 이 문제는 다른 개체에서 상속 된 개체를 serialize하기 때문에 발생합니다. BOLibrary.Flight.DTContract의 기본 클래스에 XmlInclude 특성을 넣습니다.

+0

예제는 http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlincludeattribute.aspx에서 확인할 수 있습니다. –

0

서비스 메서드에 XmlInclude 특성을 선언해야합니다.

[WebMethod]  
[XmlInclude(typeof(BOLibrary.Flight.DTContract))] 
public void GetCommission(ArrayList Loc) 
{ 
    ... 
} 
+0

@Florian : 서비스 메서드에서 [XmlInclude (typeof (BOLibrary.Flight.DTContract))]를 사용하는 경우 ... DTContract가 서비스 및 DLL에서 DTContract 참조를 가져 오기 때문에 모호합니다. – Shivi

+0

죄송합니다. 귀하의 문제를 이해할 수 없습니다. 컴파일 오류가 발생합니까 아니면 런타임에 오류가 있습니까? 두 경우 모두 오류/예외 메시지를 제공하십시오. –

+0

@Florian : 자, ServiceNAmeSpace.DTContract와 BOLibrary.Flight.DTContract의 Dtcommission. 제발, 위의 스크린 샷을 참조하십시오. – Shivi