2015-10-05 16 views

回答

4

通過.NET源代碼的閱讀,結果發現有一種「v1compat」模式,它確實會提前讀取,從而破壞了流式傳輸的目的。那麼,你如何避免陷入那種愚蠢的模式呢?

事實證明,在調用'new XmlTextReader(stream)'和'XmlReader.Create(stream)'之間微軟並沒有打算記錄文件,而且在任何地方我都找不到任何文章...前者將它放入'v1compat'模式!!!除非你需要你的XmlReader的行爲與.NET 1.1一樣,包括不正確的流行爲,否則你應該永遠不要調用'new XmlTextReader(stream)'...而是使用'XmlReader.Create(stream )'或其中一個需要XmlReaderSettings的變體,如果您需要嘗試匹配XmlTextReader所使用的設置(如果您未傳遞XmlReaderSettings,那麼至少有一些設置會不同......我不確定是什麼設置將最好地匹配'新的XmlTextReader'...如果有人知道,請在這裏添加!

+0

如果我使用'XmlReader.Create()',將結果轉換爲'XmlTextReader'並從那一點使用它?它會激活v1compat模式嗎?更新:實際創建的實例是'XmlTextReaderImpl',它是System.Xml程序集,不能轉換爲'XmlTextReader'。那麼我們應該如何使用特定於'XmlTextReader'的特性,比如'EntityHandling'屬性? –

相關問題