我使用以下代码序列化 xml 文件。
我想知道CanDeserialize
在这种情况下是否应该使用该功能。
我注意到如果文件为空,就会CanDeserialize
抛出异常。XmlException
Deserialize
在这种情况下抛出InvalidOperationException
。
我的问题是我是否应该删除那个额外的检查,如果Deserialize
做某种检查呢?
编辑:阅读一些评论和答案后,我想知道何时使用CanDeserialize
?
public static T RestoreFromXml(string filename)
{
Object res = null;
using (var stream = new FileStream(filename, FileMode.Open))
{
XmlReader reader = new XmlTextReader(stream);
try
{
if (xs.CanDeserialize(reader))
{
res = xs.Deserialize(reader);
}
}
catch (XmlException ex)
{
throw ex;
}
}
return (T)res;
}