سؤال

بالنظر إلى مثيل XDOCINGUEN ، كيف يمكنني بسهولة الحصول على Textreader الذي يمثل هذا الحالة؟

أفضل ما تمكنت من التوصل إليه هو شيء من هذا القبيل (حيث xml هو مثيل xDocument):

var s = new MemoryStream();
var sw = new StreamWriter(s);

xml.Save(sw);

sw.Flush();
s.Position = 0;

TextReader tr = new StreamReader(s);

ومع ذلك ، فإن هذا يبدو قاذفًا بعض الشيء ، لذلك كنت أتساءل عما إذا كانت هناك طريقة أسهل؟


تعديل

المثال أعلاه يعادل تحويل المثيل بأكمله إلى سلسلة XML ثم إنشاء Textreader على هذه السلسلة.

كنت أتساءل فقط ما إذا كانت هناك طريقة تشبه الدفق أكثر من قراءة المحتويات بأكملها في الذاكرة.

هل كانت مفيدة؟

المحلول

  TextReader tr = new StringReader(xml.ToString());

العطف،

دان

نصائح أخرى

لم أجربها ، لكن هناك طريقة XNode.WriteTo(XmlWriter). هل يمكن أن تمررها XmlTextWriter للحصول على تمثيل نصي. ربما سيستغرق هذا رمزًا أكثر إلى حد ما للكتابة ، ولكن يجب أن يكون "يشبه الدفق" كما طلبت :-)

تحرير:] أسهل: هناك طريقة XNode.CreateReader() الذي يمنحك XmlReader. سيكون عليك فقط التعامل مع التحويل إلى رسالة نصية بنفسك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top