2013-03-07 4 views
0

wcf에서 DataContractSerializer를 사용하여 중첩 된 xml을 deserialize하는 방법은 무엇입니까? 예제 XML은입니다.wcf에서 DataContractSerializer를 사용하여 중첩 된 xml을 deserialize하는 방법은 무엇입니까?

<smsPaidPhoneBookSearchResponse xmlns="http://callturksvc.alfion.com.tr"> 
    <webServiceResponseType>SUCCESS</webServiceResponseType> 
    <clientQueryId>112628650000001078</clientQueryId> 
    <phoneBookList> 
     <phoneBook> 
      <cityName>İstanbul</cityName> 
      <districtName>Beşiktaş</districtName> 
      <firstName>Şuayp</firstName> 
      <lastModifiedDateTime>2013-03-06T16:05:59.508+02:00</lastModifiedDateTime> 
      <lastName>Çiçek</lastName> 
      <phoneBookTypeEnumValue>TURKCELL</phoneBookTypeEnumValue> 
      <phoneNumberText>5353572115</phoneNumberText> 
     </phoneBook> 
     <phoneBook> 
      <cityName>İstanbul</cityName> 
      <districtName>Beşiktaş</districtName> 
      <firstName>Şuayp</firstName> 
      <lastModifiedDateTime>2013-03-06T16:05:59.510+02:00</lastModifiedDateTime> 
      <lastName>Çiçek</lastName> 
      <phoneBookTypeEnumValue>TURKCELL</phoneBookTypeEnumValue> 
      <phoneNumberText>5359571655</phoneNumberText> 
     </phoneBook> 
    </phoneBookList> 
</smsPaidPhoneBookSearchResponse> 

나는 성공적으로이 값 (webServiceResponseType, clientQueryId)를 얻을 수 있지만 전화 번호부 클래스의 일반적인 목록으로 phoneBookList을 얻을 수 없습니다. 예 : List<phoneBook>

모든 솔루션?

답변

1

간단한 방법은 C#에서 유사한 구조를 만든 다음이를 직렬화하는 것입니다. 그렇게하면 xml에서 무엇이 잘못되었는지 알 수 있습니다. 내 경험에 따르면 계약서에서 phoneBookList를 Array로 표시 한 다음 전화 번호부를 올바른 이름의 배열 요소로 표시 했습니까?

+0

DataMember –

+0

으로 phoneBookList를 표시했습니다. DataMemeber 특성을 표시하고 이름을 추가하지 않으면 serializer가 클래스 이름과 정확히 일치하는지 확인합니다. '[DataMember (Name = "phoneBook")]' 과 같은 DataMember 속성에 이름을 추가하고 이것이 작동하는지 확인해보십시오. – achakravarty