2010-02-01 5 views
2

가 어떻게 내 WCF 서비스에 사용이

<product> 
    <sku>12452</sku> 
    <attribute name="details">good stuff</attribute> 
    <attribute name="qty">5</attribute> 
</product> 

같은 것을 나타낼 것 XSD하지 않고 클래스의 XML을 대표 .NET? 유일한 차이점이 "이름"인 여러 속성을 정의하는 방법을 모릅니다.

이 설정을 DataMember로 설정해야 xml이 비 직렬화됩니다. 내가 속성 모두 사용하는 것이 무엇

[DataMember(Name = "sku")] 
public string sku; 

:

SKU는 같은 것입니까?

답변

2

DataContract serializer가 XML 특성 (요소 만)을 지원하지 않으므로 DataContracts를 사용하여이 작업을 수행 할 수 없습니다. 해당 스키마로 메시지를 생성해야하는 경우 대신 use XmlSerializer을 사용해야합니다.

+0

DataContracts가 새로운 경우 왜 속성을 지원하지 않습니까? 그들은 비난 받고 있습니까? –

+1

@Chris : DataContractSerializer는 성능상의 이유로 XML 노드의 특성을 지원하지 않습니다. DCS를 지원하지 않으면 동일한 문서의 XmlSerializer보다 DCS가 약 10-15 % 빠릅니다. –