Новичок в мире XML / Xdocument.Попытка создать Xdocument с переменным количеством элементов DataField, которые передаются в виде списка кортежей.Этот документ используется как часть вызова API для редактирования полей в записи на удаленном сервере.Когда я пытаюсь добавить элементы DataField в цикл foreach, xdoc отображается как Null.Поэтому я продолжаю получать ошибки NullReferenceException.Почему xdoc или его XElements = null, когда я только что его создал?Я знаю, что это не сложная ситуация, но за последние несколько дней я просмотрел несколько сайтов, и стало ясно, что я не получаю чего-то очень фундаментального.
public XDocument MakeXDoc(string frmID, string prj, List<Tuple<string, string, string>> frmdata)
{
XNamespace ns = "http://xxxxxxx.yyyyyy.com/api/v1/";
var xdoc = new XDocument(
new XDeclaration("1.0", "utf-8", null),
new XElement(ns + "ProjectDataRequest",
new XElement(ns + "Project",
new XElement(ns + "DataFields", new XAttribute("ProjectId", prj), new XAttribute("FormId", frmID),
new XElement(ns + "DataField" , new XAttribute("DataFieldId", ""), new XAttribute("Value", "") )))));
foreach (Tuple<string, string, string> fld in frmdata)
{
XElement xdf = new XElement(ns + "DataField", new XAttribute("DataFieldId", fld.Item1.ToString()), new XAttribute("Value", fld.Item3.ToString()));
xdoc.Element(ns + "DataField").Add(xdf);
}
return xdoc;
}