У меня очень простое приложение, которое в настоящее время имеет один класс Linq to Sql на основе одной таблицы.Сериализация Linq.Table для XML
Мне нужно упорядочить (по XML) все строки в таблице, используя DataContext для класса Linq To Sql.
Как мне это сделать?
Это мой текущий код:
var db = new MyEntityDataContext();
Stream fs = new FileStream("Output.xml", FileMode.Create);
XmlWriter writer = new XmlTextWriter(fs, Encoding.Unicode);
serializer = new XmlSerializer(typeof(MyEntity));
foreach (var row in db.MyEntitys)
{
// Serialize object to XML
serializer.Serialize(writer,row);
}
writer.Close();
Однако он бросает следующее исключение: "Token StartElement in state Epilog would result in an invalid XML document."
Я также попытался:
XmlSerializer serializer2 = new XmlSerializer(db.MyEntitys.GetType());
, но это бросает исключение "To be XML serializable, types which inherit from IEnumerable must have an implementation of Add(System.Object) at all levels of their inheritance hierarchy."
,
Использование ToList() на Linq.Table выполнило трюк, и теперь оно работает с использованием DataContractSerializer или XmlSerializer. Должен был попробовать это сам. Благодарю. Есть ли прямой способ настройки имен элементов в полученном Xml-файле, особенно в корневом элементе? –
TonE
Признаюсь, у меня не было причин попробовать ... так что я не знаю. С XmlSerializer, возможно, одна из перегрузок, которая принимает определения атрибутов? –
Да, это может быть указано с помощью 'XmlSerializer (тип типа, корень XmlRootAttribute);' Еще раз спасибо за помощь. – TonE