Преобразование общего списка объектов в SqlXml

Пожалуйста, не отмечайте как дубликат, не прочитав, так как я гуглил это и искал в stackoverflow, но я не могу найти именно то, что хочу.

Как преобразовать общий список объектов в С# в тип данных SqlXml.

Обратите внимание, что я не собираюсь преобразовывать в вывод строки xml.

Мне нужен именно этот тип вывода, чтобы я мог передать его в качестве параметра SqlXml хранимой процедуре.


person Jay Jay Jay    schedule 22.05.2013    source источник
comment
Возможный дубликат Сериализация объектов C# в XML — самый быстрый способ?   -  person Dustin Kingen    schedule 23.05.2013
comment
Ржу не могу. Я знал, что кто-то пометит это как дубликат, не читая, потому что это похоже на другие вопросы, но немного отличается   -  person Jay Jay Jay    schedule 23.05.2013
comment
Затем попробуйте другой сериализатор, например XSerializer.   -  person Dustin Kingen    schedule 23.05.2013
comment
Если сериализация XML слишком медленная, пробовали ли вы просто повторять свой список и создавать XmlWriter/XmlDocument на лету?   -  person Adam Plocher    schedule 23.05.2013
comment
@adam-plocher Посмотрите на мою правку. Я попробую ваш подход к конструктору XmlDocument   -  person Jay Jay Jay    schedule 23.05.2013
comment
@mike попробуй попробовать.   -  person Jay Jay Jay    schedule 23.05.2013
comment
по какой причине вы не хотите XDocument?   -  person Keith Nicholas    schedule 23.05.2013
comment
Я никогда не использовал XDocument. Не могли бы вы предложить это как решение с примером? Если это быстро и использует список ввода безопасным способом, я приму ваш ответ   -  person Jay Jay Jay    schedule 23.05.2013
comment
только что обновил свой ответ   -  person Keith Nicholas    schedule 23.05.2013
comment
Мои извинения @keith-nicholas. Пожалуйста, посмотрите на вопрос, поскольку я понял, что мне нужно что-то немного другое -   -  person Jay Jay Jay    schedule 23.05.2013
comment
Сериализация в MemoryStream, возврат потока в положение 0, затем создание экземпляра SqlXml, передающего поток.   -  person John Saunders    schedule 23.05.2013
comment
@Джон-Сондерс. Опубликуйте это как ответ. Я попробую это завтра утром первым делом. Если это работает правильно, я соглашусь. Я знаю, что сказал то же самое Киту Николасу, но на этот раз я сделаю лучше.   -  person Jay Jay Jay    schedule 23.05.2013


Ответы (1)


По предложению Джона Сондерса

MemoryStream memoryStream = new MemoryStream();
XmlSerializer xs = new XmlSerializer(typeof(TypeOfObjectToBeConverted));
XmlTextWriter xmlTextWriter = new XmlTextWriter(memoryStream, Encoding.UTF8);
xs.Serialize(xmlTextWriter, objectToBeConverted);
memoryStream = (MemoryStream)xmlTextWriter.BaseStream;
memoryStream.Position = 0;
System.Data.SqlTypes.SqlXml obj = new System.Data.SqlTypes.SqlXml(memoryStream);
person Jay Jay Jay    schedule 23.05.2013