Xml反序列化异常
本文关键字:异常 反序列化 Xml | 更新日期: 2023-09-27 17:51:26
我只是想把一个xml文件反序列化成一个类。
我的xml文件:
<DirectoryListener inputDirectory="C:'test'"
outputDirectory="C:'keyValueXml'"
fileExt=".xml"/>
这是我的类(由"Paste Special"生成):
public class DirectoryListenConfig
{
[System.SerializableAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
[System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)]
public partial class DirectoryListener
{
private string inputDirectoryField;
private string outputDirectoryField;
private string fileExtField;
[System.Xml.Serialization.XmlAttributeAttribute()]
public string inputDirectory
{
get
{
return this.inputDirectoryField;
}
set
{
this.inputDirectoryField = value;
}
}
[System.Xml.Serialization.XmlAttributeAttribute()]
public string outputDirectory
{
get
{
return this.outputDirectoryField;
}
set
{
this.outputDirectoryField = value;
}
}
[System.Xml.Serialization.XmlAttributeAttribute()]
public string fileExt
{
get
{
return this.fileExtField;
}
set
{
this.fileExtField = value;
}
}
}
}
我试着反序列化xml文件:
string path = "DirectoryConfig.xml";
XmlSerializer serializer = new XmlSerializer(typeof(DirectoryListener));
StreamReader reader = new StreamReader(path);
directoryConfig = (DirectoryListener)serializer.Deserialize(reader);//Throw an exception
得到一个异常
类型为"System"的未处理异常。附加信息:在XML文档(2,2)中有一个错误。
有什么问题吗?: '
谢谢!
试试这个
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Serialization;
using System.IO;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string path = @"c:'temp'test.xml";
XmlSerializer serializer = new XmlSerializer(typeof(DirectoryListener));
StreamReader reader = new StreamReader(path);
DirectoryListener directoryListener = (DirectoryListener)serializer.Deserialize(reader);//Throw an exception
}
}
[XmlRoot("DirectoryListener")]
public partial class DirectoryListener
{
private string inputDirectoryField;
private string outputDirectoryField;
private string fileExtField;
[XmlAttribute("inputDirectory")]
public string inputDirectory {get; set; }
[XmlAttribute("outputDirectory")]
public string outputDirectory { get; set; }
[XmlAttribute("fileExt")]
public string fileExt { get; set; }
}
}