2009-03-11 19 views
1
StringReader rdr = new StringReader(finalXML); 

//Reader is a property which returns XmlTextReader 
Reader = new XmlTextReader(rdr); 
XmlReader reader = XmlReader.Create(rdr, settings); 

Son satır, akış öğesinin sonunda olduğu için kök öğenin eksik olması nedeniyle bir istisna atar.
_pos değeri, satır 2'de daha önce bu özelliği atadığımda tüm karakterleri okuduğunu gösterir.
Bir StringReader'ın nasıl sıfırlanacağını biliyor mu?StringReader'ın sıfırlanışı konumu

+0

Vay anlaması zor. Bir sorunuz var mı? Öyleyse, lütfen kodda bir yorum olarak gizlemeyin. -1 için –

+0

+1. Ayrıca, özel amaçlar dışında XmlTextReader kullanmayın. Bu onlardan biri değil. Ayrıca, Reader'ınızı arayanlara gösterme. "Reader =" satırını yorumlayın ve kodun işe yaradığına eminim. –

+0

XmlTextReader'ı kullanmak için bir ihtiyacım var ve bu satırı yorumlamak istemiyorum. İhtiyacım olan şey dize için StringReader – chugh97

cevap

3

Esasen yapmazsınız. Sadece yeni bir tane oluşturun ... "okuyucu" lar genellikle tek yönlüdür. Bazı şekillerde, 'un tükettiği ayarlanabilir bir "Reader" özelliğine sahip olmak okuyucuya kafa karıştırıcıdır. Bunun yerine bir Read(...) veya Load(...) yöntemine sahip olabilirsiniz? O zaman yan etkilere sahip olduğu belli olur ...

+0

Bu gerçekten bana yardımcı oldu! – chugh97

0

En iyi uygulama olarak, kurucudan ziyade Fabrika Kalıbı kullanan statik XmlReader.Create() yöntemini kullanmalısınız "yeni XmlTextReader (...) "