1
IXmlSerializable을 구현하고 XML 파일에 Dictionary> Dictionary 개체를 캡처 할 수 있습니까?XML 사전을 사용하여 클래스 직렬화 <string, List <string>> 개체
나는>
IXmlSerializable을 구현하고 XML 파일에 Dictionary> Dictionary 개체를 캡처 할 수 있습니까?XML 사전을 사용하여 클래스 직렬화 <string, List <string>> 개체
나는>
writer.WriteStartElement("CocoKeys");
foreach (var kvp in coco)
{
writer.WriteStartElement("CocoKey");
writer.WriteAttributeString("key", kvp.Key);
writer.WriteStartElement("CoCoValues");
foreach(string s in kvp.Value)
{
writer.WriteStartElement("CoCoValue");
writer.WriteString(s);
writer.WriteEndElement();
}
writer.WriteEndElement();
writer.WriteEndElement();
writer.WriteEndElement();
}
이 이런 식으로 뭔가를 생산해야 다음
public class coolio : IXmlSerializable
{
private int a;
private bool b;
private string c;
private Dictionary<string, List<string>> coco;
public coolio(int _a, bool _b, string _c, Dictionary<string, List<string>> _coco)
{
a=_a;
b=_b;
c=_c;
coco=_coco;
}
public System.Xml.Schema.XmlSchema GetSchema()
{
return null;
}
public void WriteXml(XmlWriter writer)
{
const string myType = "coolio";
writer.WriteStartElement(myType);
writer.WriteAttributeString("a", a.ToString());
writer.WriteAttributeString("b", b.ToString());
writer.WriteAttributeString("c", c);
// How do I add a subelement for Dictionary<string, List<string>> coco?
writer.WriteEndElement();
}
public void ReadXml(XmlReader reader)
{
if (reader.MoveToContent() != XmlNodeType.Element || reader.LocalName != "coolio")
return;
a= int.Parse(reader["a"]);
b = bool.Parse(reader["b"]);
c= reader["c"];
// How do I read subelement into Dictionary<string, List<string>> coco?
}
}
그러나 나는 사전을 추가 할 수있는 방법으로 난처한 상황에 빠진 오전 (XML 내 XML 파일에 seriliazed)했다 :
<CocoKeys>
<CocoKey key="sample">
<CocoValues>
<CocoValue>Sample1</CocoValue>
<CocoValue>Sample2</CocoValue>
<CocoValue>Sample3</CocoValue>
</CocoKey>
</CocoKeys>
반대쪽에는 반복하여 재구성하십시오. 코드가 맞기를 바란다. 나는 당신의 예제에 의해서만 그것을했다. 메서드 호출을 조정해야 할 수도 있지만 의사 (pseudo)에서는 정확해야합니다.
아, 나는 두려웠다. 반복을 통해 더 좋은 방법이 있어야한다고 생각했다. 그렇지 않다. 고마워! – Matt
np, 즉석에서 글쓰기 연습. – Femaref