XmlTextReader игнорирует CheckCharacters=false, когда нормализация включенаC#

Место общения программистов C#
Ответить
Anonymous
 XmlTextReader игнорирует CheckCharacters=false, когда нормализация включена

Сообщение Anonymous »

Я реализовал свой XmlTextReader с переопределенной настройкой для CheckCharacters. Примерно так:

Код: Выделить всё

class MyXmlTextReader : XmlTextReader
{
public MyXmlTextReader(TextReader input) : base(input)
{
}

/// 
/// Settings
/// 
public override XmlReaderSettings Settings
{
get { return new XmlReaderSettings { CheckCharacters = false }; }
}
}
Когда я использую его в обычном сценарии с неверными данными XML, все работает нормально:

Код: Выделить всё

var sr3 = new StringReader(xml);
var xr3 = new MyXmlTextReader(sr3);
var obj3 = (MyObject)ser.Deserialize(xr3);
Но как только я включаю нормализацию, я начинаю получать исключения InvalidCharacter:

Код: Выделить всё

var sr3 = new StringReader(xml);
var xr3 = new MyXmlTextReader(sr3);
xr3.Normalization = true;
var obj3 = (MyObject)ser.Deserialize(xr3);
Есть ли способ нормализовать, но в то же время игнорировать недопустимые символы XML?

Вот пример приложения для воспроизведения проблемы:
https://gist.github.com/ncksol/29bd6490 ... 8b417b37d3

Подробнее здесь: https://stackoverflow.com/questions/404 ... tion-is-on
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»