Будьте внимательны - между двумя строчками кода
Weight = 22.44;
new XAttribute("weight", Weight.ToString())
new XAttribute("weight", Weight)
есть большая разница в случае русской культуры. В первом случае в XML будет записано 22,44 тогда как во втором 22.44 (через точку) и при попытке прочитать это значение будет ошибка.
Но ведь XML должен быть корректным не зависимо от используемой культуры (может быть он будет прочитан совсем на другом компьютере, чем записан), поэтому всегда используйте второй вариант, а при чтении устанавливайте культуру в en-US:
static CultureInfo cultureEnUS = new CultureInfo("en-US");
XAttribute weightAttr = element.Attribute("weight");
if (weightAttr != null)
{
Weight = double.Parse(weightAttr.Value, cultureEnUS);
}
No comments:
Post a Comment