switch (xn.SelectSingleNode("@type").InnerText) {
case "int":
case "int16":
case "int32":
v = int.Parse(xn.InnerText);
break;
default:
v = string.IsNullOrEmpty(xn.InnerText) ? null : xn.InnerText; // Here you shall avoid the `NullReferenceException`.
break;
}
Кроме того, если я правильно понимаю, v
выглядит так, как будто это int
, поэтому вы можете рассмотреть вопрос о присвоении его 0
, когда xn.InnerText
возвращает ноль.
v = string.IsNullOrEmpty(xn.InnerText) ? 0 : xn.InnerText;