XML이 잘못되었다고 생각합니다.
<Element3>
<string>Text 2</string>
<string>Text 3</string>
</Element3>
그래서, 당신의 XML이 형식이 있어야합니다 :
<Service>
<Element1>true</Element1>
<Element2>Text 1</Element2>
<Element3>
<string>Text 2</string>
<string>Text 3</string>
</Element3>
</Service>
편집을 : 논리적으로, 배열은 다음과 같이 직렬화됩니다 당신이 형식을 변경할 수없는 경우이 XML 문자열을 비 일렬 화하기 위해 예를 추가했습니다. 아래 코드는 테스트되지 않았습니다.
클래스 서비스는 IXmlSerializable에서 파생해야합니다
public class Service : IXmlSerializable
{
public System.Xml.Schema.XmlSchema GetSchema()
{
return null;
}
public void ReadXml(System.Xml.XmlReader reader)
{
List<string> element3 = new List<string>();
while (reader.Read())
{
if (reader.Name == "Element1" && reader.NodeType == XmlNodeType.Element)
{
Element1 = Convert.ToBoolean(reader.ReadString());
}
else if (reader.Name == "Element2" && reader.NodeType == XmlNodeType.Element)
{
Element2 = reader.ReadString();
}
if (reader.Name == "Element1" && reader.NodeType == XmlNodeType.Element)
{
element3.Add(reader.ReadString());
}
}
Element3 = element3.ToArray();
}
public void WriteXml(System.Xml.XmlWriter writer)
{
writer.WriteStartElement ("Service");
writer.WriteStartElement ("Element1");
writer.WriteString(Element1.ToString());
writer.WriteEndElement();
writer.WriteStartElement ("Element2");
writer.WriteString(Element2.ToString());
writer.WriteEndElement();
foreach (string ele in Element3)
{
writer.WriteStartElement ("Element3");
writer.WriteString(ele);
writer.WriteEndElement();
}
writer.WriteEndElement();
}
}
FYI,'file'은 결코 null이 될 수 없습니다. –