я предполагаю, что в этой строке есть ошибка компиляции:
XElement Quota = XDocument.Descendants("traffic").Attributes("quota");
результат Descendants("traffic")
равен IEnumerable
, а не XElement
.в строке выше, что вы уже получаете First
из этого перечисляемого элемента, который вам нужен, не так ли?
строка квоты должна быть:
XElement Quota = Traffic.Attributes("quota");
С точки зрения стиля, большинство людей используют локальные переменные в нижнем регистре, например traffic
и quota
и data
, чтобы отличать их от свойств и членов уровня класса.Attributes("quota")
возвращает IEnumerable<XAttribute>
, поэтому строка квоты должна быть:
XAttribute Quota = Traffic.Attributes("quota").FirstOrDefault();
или для упрощения:
var traffic = XDocument.Descendants("traffic").First();
var quota = traffic.Attributes("quota").FirstOrDefault();
Я не хочу быть означать , но исправление таких ошибок компилятора должно быть тем, к чему вам не нужно обращаться в stackoverflow.Ошибка самого компилятора говорит вам, в чем проблема: метод возвращает тип, отличный от того, что вы сказали, что он делает.Использование var
может упростить некоторые из них.