Вы можете использовать DataContractSerializer в System.Runtime.Serialization, чтобы получить XDocument
XDocument doc = new XDocument();
using (XmlWriter writer = doc.CreateWriter())
{
DataContractSerializer serializer = new DataContractSerializer(typeof(T));
serializer.WriteObject(writer, obj);
writer.Close();
}
return doc;
где obj - ваш объект, а T - тип вашего объекта