文字列を解析して引数から取得したタイプにするための最良の方法は何ですか?
現在、次の関数を使用してXMLノードを解析していますが、汎用的にしたいと考えています。
private void ParseSettings(XmlDocument doc)
{
IsFormVisible = (bool) ParseNode(doc, "Settings/IsFormVisible", IsFormVisible);
UpdaterRunInterval = (int) ParseNode(doc, "Settings/UpdaterRunInterval", UpdaterRunInterval);
UpdaterLastRunTime = (DateTime) ParseNode(doc, "Settings/UpdaterLastRunTime", UpdaterLastRunTime);
}
private object ParseNode(XmlDocument doc, string node, object defaultValue)
{
try
{
XmlNode xmlNode = doc.SelectSingleNode(node);
if (xmlNode == null)
return defaultValue;
string text = xmlNode.InnerText;
if (defaultValue is int)
return int.Parse(text);
if (defaultValue is bool)
return bool.Parse(text);
if (defaultValue is string)
return text;
if (defaultValue is DateTime)
return DateTime.Parse(text);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
return defaultValue;
}