2010-06-24 6 views
4

도움이 필요합니다. XML로 들어오는 데이터가 있습니다. 객체를 만들고 싶습니다. 다시 직렬화하고 멀리 보내십시오. 하지만 일종의 종류 여야합니다. 사용자 지정 직렬화.사용자 정의 xml serialization

XML과 같은 :

<Animals Ver="12" class="1" something="2"> 
    <Dog Ver="12" class="2" something="17"> 
     <Name> a </Name> 
     <Sound> oof </Sound> 
     <SomeOtherProp>12</SomeOtherProp> 

    </Dog> 
    <Cat Ver="12" class="3" something="4"> 
     <Name> b </Name> 
     <Sound> meow </Sound> 
    </Cat> 
</Animals> 

의 요구가 제시하는 방법 :

abstract class Animal :XmlMagic 
{ 
    public string Name{get;set;} 
    public string Sound{get;set;} 

    public void SomeMagicalXMLSerializationMethod() 
    {} 
    public void SomeMagicalXMLDeSerializationMethod() 
    {} 
} 

class Dog: Animal, XmlMagic 
{ 
    public int SomeOtherProp{get;set;} 
    public void SomeMagicalXMLSerializationMethod() 
    {} 
    public void SomeMagicalXMLDeSerializationMethod() 
    {} 
} 

답변

4

그러나 거기 또한 XML 직렬화가

[XmlAttribute] 
[XmlArrayElement] 
[XmlRoot] 

등과 같은 속성, 당신은 당신의 직렬화를 제어하고 복잡한 직렬화 논리를 작성하지 않고 당신이 원하는 acheive 이러한 특성을 사용할 수 있습니다.

0

WCF REST 스타터 키트를 확인해보십시오. "형식으로 XML 붙여 넣기"라는 Visual Studio 추가 기능이 포함되어 있으므로

기본적으로 원시 XML을 복사 한 다음 해당 옵션을 선택합니다. 해당 XML을 기반으로 클래스를 생성합니다. 그렇다면 다음과 같은 간단한 작업을 할 수 있습니다.

관련 문제