次のコードを使用して、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;
}