- - PR -
ReadXmlでUriFormatException
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2003-12-16 10:01
はじめまして、C#初心者です。
XmlSerializerでシリアライズした文字列をReadXmlで読み込むとUriFormatExceptionが発生します。 public struct Person { public string Name; public int Age; } private void button1_Click(object sender, System.EventArgs e) { Person[] persons = new Person[2]; persons[0] = new Person(); persons[0].Name = "山田太郎"; persons[0].Age = 17; persons[1] = new Person(); persons[1].Name = "田中次郎"; persons[1].Age = 21; XmlSerializer serializer = new XmlSerializer(typeof(Person[])); StringWriter stringWriter = new StringWriter(); XmlTextWriter xmlWriter = new XmlTextWriter(stringWriter); serializer.Serialize(xmlWriter, persons); Trace.WriteLine(stringWriter.ToString()); stringWriter.Close(); DataSet ds = new DataSet(); ds.ReadXml(stringWriter.ToString()); // ここでUriFormatException } 一旦ファイルに書き込んでから読み込めば正常に読み込めます。 } ・・・ StreamWriter streamWriter = new StreamWriter(@"c:\\sample.xml"); XmlTextWriter xmlWriter = new XmlTextWriter(streamWriter); serializer.Serialize(xmlWriter, persons); streamWriter.Close(); DataSet ds = new DataSet(); ds.ReadXml(@"c:\\sample.xml"); } UriFormatExceptionはどういった場合に発生するのでしょうか?対応策はありますか? よろしくお願いします。 |
|
投稿日時: 2003-12-16 10:20
自己レスです。勘違いをしていました。ReadXmlに文字列を渡すとファイル名として認識するのですね。お騒がせしました。
StringWriter stringWriter = new StringWriter(); XmlTextWriter xmlWriter = new XmlTextWriter(stringWriter); serializer.Serialize(xmlWriter, persons); Trace.WriteLine(stringWriter.ToString()); DataSet ds = new DataSet(); StringReader stringReader = new StringReader(stringWriter.ToString()); ds.ReadXml(stringReader); // StringReaderを指定すればok foreach(DataRow row in ds.Tables[0].Rows) { Trace.WriteLine(row["Name"]); Trace.WriteLine(row["Age"]); } |
1