我有反序列化文档的对象使用XmlSerializer
类的问题。C#反序列化XML
代码我的功能反序列化:
static public TYPE xmlToObject<TYPE>(string xmlDoc) {
MemoryStream stream = new MemoryStream();
byte[] xmlObject = ASCIIEncoding.ASCII.GetBytes(xmlDoc);
stream.Write(xmlObject, 0, xmlObject.Length);
stream.Position = 0;
TYPE message;
XmlSerializer xmlSerializer = new XmlSerializer(typeof(TYPE));
try {
message = (TYPE)xmlSerializer.Deserialize(stream);
} catch (Exception e) {
message = default(TYPE);
} finally {
stream.Close();
}
return message;
}
而且我有类:
public class Test {
public int a;
public int b;
}
和反序列化:
string text = File.ReadAllText("blue1.xml");
Test a = XmlInterpreter.xmlToObject<Test>(text);
好吧,当我读到文件是这样的:
<?xml version="1.0" encoding="UTF-8"?>
<Test>
<a>2</a>
<b>5</b>
</Test>
一切都好。但是,像这样:
<?xml version="1.0" encoding="UTF-8"?>
<Test>
<a>2</a>
<b></b>
</Test>
是错误的,因为
<b></b>
是空的,转换成int是不可能的。
我该如何解决这个问题?例如,我想在这种情况下,b
将不会宣布。
当我的类是什么:
public class Test {
public enum Pro {
VALUE1,
VALUE2
}
public Pro p1;
}
而且我想接受xmlDocument
,其中场p1
是空的。
现在好了,这是错误的 – nirmus 2011-06-12 14:01:05