XmlTextReader и DTD встроенного ресурса

Я пытаюсь создать один EXE-файл без зависимостей (за исключением .NET Framework :-). Программа включает в себя синтаксический анализ группы XML-документов (с использованием XmlTextReader), которые используют один и тот же DTD. DTD упоминается в документе только по имени, поэтому до сих пор я использовал его как «Копировать, если новее», поэтому он находится в той же папке, что и сам EXE.

Теперь я хотел бы встроить это DTD в качестве встроенного ресурса в свой проект. Я предполагаю, что мне понадобится собственный XmlResolver, чтобы мой XmlTextReader был доволен, но я не был уверен, как это выглядит. В чем секрет соуса?


person roufamatic    schedule 20.04.2011    source источник
comment
В общем, вы не должны использовать XmlTextReader. Вы должны использовать XmlReader.Create().   -  person John Saunders    schedule 20.04.2011


Ответы (1)


Секретного соуса нет. Просто введите в Google «XmlResolver», и вы найдете «систему .Xml.XmlResolver class". Внизу вы найдете ссылку на «Настройка класса XmlUrlResolver".

Используйте экземпляр своего пользовательского преобразователя в качестве свойства XmlResolver экземпляра XmlReaderSettings, используемого в вызове XmlReader.Create.

person John Saunders    schedule 20.04.2011
comment
Спасибо, теперь я понял. Но согласитесь, соус был ближе к вустерширскому, чем к кетчупу. :-) - person roufamatic; 20.04.2011
comment
Полезно, но пример был бы лучше, так как в MSDN их нет. - person NightOwl888; 21.08.2016
comment
@night Я предполагаю определенный уровень компетентности аудитории. - person John Saunders; 21.08.2016