Как я проверяю XML-документ против DTD в C#?

Выключение одной только отладки не должно иметь значения вообще. Но как только Вы выключаете отладку и включаете оптимизацию, необходимо видеть различие, поскольку это делает некоторую статическую оптимизацию во время компиляции. Этот путь даже Ваш оптимизированный код горячей точки становится быстрее во времени выполнения.

, Но до сих пор, компромисс между получением значения полных отслеживаний стека или наличия еще некоторой пользовательской производительности, я всегда голосовал за отслеживания стека. В конце концов, пользователи готовы потратить 1 000$ каждый год для получения более быстрой машины, но не готовы провести 15 минут, чтобы дать Вам значимые сообщения об ошибках Вам для решения их проблем.

После лет, я более готов оценить свои 15 минут выше, чем 1 000$ пользователя.:)

5
задан Matthew 20 May 2010 в 13:12
поделиться

2 ответа

Вместо того, чтобы создавать XmlValidatingReader класс напрямую, необходимо создать соответствующий объект XmlReaderSettings и передать его в качестве аргумента в XmlReader.Create метод :

var settings = new XmlReaderSettings { ValidationType = ValidationType.DTD };
settings.ValidationEventHandler += new ValidationEventHandler(OnValidationEvent);
var reader = XmlReader.Create("file.xml", settings);

Остальное без изменений.

PS OnValidationEvent - это имя метода, который вы объявляете для обработки событий проверки. Очевидно, вы можете удалить эту строку, если не хотите подписываться на события проверки, вызываемые XmlReader .

4
ответ дан 14 December 2019 в 19:17
поделиться
var messages = new StringBuilder();
var settings = new XmlReaderSettings { ValidationType = ValidationType.DTD };
settings.ValidationEventHandler += (sender, args) => messages.AppendLine(args.Message);
var reader = XmlReader.Create("file.xml", settings);

if (messages.Length > 0)
{
    // Log Validation Errors
    // Throw Exception
    // Etc.
}

ValidationEventHandler

Лямбда-выражения

Определение типа

2
ответ дан 14 December 2019 в 19:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: