Текущая реализация
База данных Sql Server 2005 с таблицей сообщений с колонкой MessageXml типа xml.
C # Библиотечный проект с классом Linq to Sql, который генерирует класс Message с полем MessageXml типа XElement.
Веб-служба WCF, предоставляющая класс MessagePayload со свойством MessageXml типа XElement.
Веб-сервис не обслуживает мой класс Message, созданный Linq для Sql. Я использую легкий объект для перехода.
Вопрос
Является ли XElement действительно тем типом, который я хочу использовать в моей службе WCF, или это лучший тип. XML, предназначенный для передачи в службу, должен быть полным документом. Кроме того, у меня возникли проблемы с загрузкой XML-документов в качестве XElement. Я думаю, что мне следует предоставить полный тип документа xml в легком классе для службы, но я немного запутался в различиях между XDocument и XmlDocument.
Кроме того, я не могу предоставить класс сообщения WCF со свойством типа XDocument, поскольку он содержит свойство типа XDeclaration, которое нельзя сериализовать.
Если я использую XmlDocument, тогда мне нужно сделать это странное преобразование типов XML в моем переводе между классом Linq и классом облегченного типа.
XmlDocument doc = new XmlDocument();
doc.LoadXml(message.MessageXml.ToString());
MessageEnvelope retVal = new MessageEnvelope()
{
MessageXml = doc,
};
XmlDocument кажется правильным, и я знаю, что мне придется сделать некоторый перевод, но я хочу подобраться как можно ближе.