2010-11-23 7 views
0

webservice에 비누 요청을 보내는 데 문제가 있습니다. 주문 세부 정보의 배열을 포함하여 주문을 만듭니다. 그럼 그 주문을 웹 서비스로 보냅니다. 피 들러를 사용하면 주문이 올바르게 전달되었는지 확인할 수 있지만 주문 세부 정보는 표시되지 않습니다. 내가 문자열 배열에 주문 세부의 배열에서 OrderDetails의 변화 시도했습니다C# 문제 해결 개체 직렬화 오류

<order><orderDetails><orderDetail /></orderDetails><order> 

그들은 요청에 올바르게 표시 : 만 얻을. 나는 또한 순서대로 정확한 수를 얻는다. 그들은 단지 비어 있습니다.

두 클래스 모두 wsdl에서 생성되었으므로 orderDetail이 제대로 직렬화되지 않는 이유는 알 수 없습니다. 더 자세한 오류 정보를 얻는 방법을 모르겠습니다. 어떤 도움이라도 대단히 감사하겠습니다. 감사합니다

내 웹 서비스에서 생성 된 내 Reference.cs,에서

:

[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.1")] 
[System.SerializableAttribute()] 
[System.Diagnostics.DebuggerStepThroughAttribute()] 
[System.ComponentModel.DesignerCategoryAttribute("code")] 
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://some.url")] 
public partial class order { 
    private orderDetail[] orderDetailsField; 

    [System.Xml.Serialization.XmlArrayAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] 
    [System.Xml.Serialization.XmlArrayItemAttribute("orderDetails", Form = System.Xml.Schema.XmlSchemaForm.Unqualified)] 
    public orderDetail[] orderDetails { 
     get { 
      return this.orderDetailsField; 
     } 
     set { 
      this.orderDetailsField = value; 
     } 
    } 
} 

[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.1")] 
[System.SerializableAttribute()] 
[System.Diagnostics.DebuggerStepThroughAttribute()] 
[System.ComponentModel.DesignerCategoryAttribute("code")] 
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://some.url")] 
public partial class orderDetail { 
    private int productIDField; 

[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] 
    public int productID { 
     get { 
      return this.productIDField; 
     } 
     set { 
      this.productIDField = value; 
     } 
    } 

} 생성 된 클래스는 각 필드에 대한 '정의'필드가 같은

+0

죄송합니다. 추가 조사를 통해이 질문을 더 간단하게 처리 할 수 ​​있습니다. 기본적으로 주문 개체를 serialize 할 수 있지만 orderDetails 개체를 serialize하면 빈 개체가 반환됩니다. 그것들은 같은 방식으로 선언 된 것처럼 보이기 때문에 왜 그런 일이 일어날 지 또는 어떻게 직렬화 프로세스를 디버깅 할 수 있는지 아는 사람이 있는지 궁금합니다. – Tavis

+0

이 페이지 덕분에 지금 직렬화 디버깅 http://platinumdogs.wordpress.com/2008/02/25/debugging-net-serialization-code/ – Tavis

+0

내가 틀릴 수도 있지만 XmlArrayItemAttribute ("orderDetails" , XmlArrayItemAttribute ("orderDetail",? –

답변

2

이 보인다.

object.productIDSpecified=true; 

가 제대로 직렬화 제작 설정

. 바라기를 이것은 누군가 다른 사람을 돕는다.