2014-11-28 2 views
0

이 내 현재 코드입니다XML 시리얼 시리얼 라이저 (C#을)의 고급 기능

<Map> 
    <Tile>TileData</Tile> 
</Map> 

맵은 루트 노드입니다.

내 질문은 : 내가 지금 가지고있는 것 대신에 어떻게 만들 수 있습니까? 다음에 있습니까?

<GameSave> 
    <Map> 
     <Tile>TileData</Tile> 
    </Map> 
    <Options> 
    </Options> 
</GameSave> 

그래서 기본적으로 루트 노드를 추가하고 옵션 노드와 함께, (타일 노드를 포함하는) 그것으로 내지도의 노드를. 목록을 사용하는 방식을 바꿔야하고 목록을 사용하지 않아야 하나, 목록에는 타일 만 포함되어 있습니까?

+0

나는 당신이 걱정하는 이유 unlear 해요 :

public class Tile { public string TileData { get; set; } } public class Option { public string Key { get; set; } public string Value { get; set; } } [XmlRoot("GameSave")] public class GameSave { [XmlArray("Map")] [XmlArrayItem("Tile")] public List<Tile> Tiles { get; set; } [XmlArray("Options")] [XmlArrayItem("Option")] public List<Option> Options { get; set; } } 

그런 다음 GameSave 객체를 생성 한 후, 다음과 같은 출력이 표시됩니다. 논리적으로는 코드에서 시도해보고 작동하지 않는 경우 여기에 질문하십시오. –

+0

필자는 XML 사용 경험이 거의 없으며, 무엇을해야할지, 어디서부터 시작해야할지 명확하지 않다. – Weehee

답변

0

원하는 형식을 이해할 수 있도록 serializer에 적절한 XML 특성을 가진 래핑 개체가 필요합니다. 그 모습 수있는 방법을 다음 쇼 :

<?xml version="1.0" encoding="utf-16"?> 
<GameSave xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <Map> 
    <Tile> 
     <TileData>Test</TileData> 
    </Tile> 
    </Map> 
    <Options> 
    <Option> 
     <Key>Option</Key> 
     <Value>Value</Value> 
    </Option> 
    </Options> 
</GameSave> 
+0

그냥 시도해 봤는데 효과가 있었다는 것을 알려주고 싶습니다. (고맙습니다.하지만 아직 할 수는 없습니다) – Weehee

관련 문제