Я пытаюсь включить поддержку IDN / IRI для класса URI, потому что мне нужен метод "Uri.IsWellFormedUriString" для немецких доменов umlaut (например, www.bücher.de).
Я нашел похожий вопрос в https://stackoverflow.com/a/6107682/413531 (взято из http://msdn.microsoft.com/en-us/library/system.uri.aspx в "Поддержка идентификаторов международных ресурсов"), но решение не работает для меня. Мой текущий файл app.config выглядит примерно так:
<configuration>
<configSections>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="..." type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
<!-- ... some sections in here ... -->
</sectionGroup>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<!-- ... some sections in here ... -->
</sectionGroup>
</configSections>
<userSettings>
<!-- ... some settings in here ... -->
</userSettings>
<applicationSettings>
<!-- ... some settings in here ... -->
</applicationSettings>
</configuration>
когда я просто добавляю
<uri>
<idn enabled="All" />
<iriParsing enabled="true" />
</uri>
как другой дочерний элемент в конце, выдается исключение: ConfigurationErrorsException - {"Das Konfigurationssystem konnte nicht initialisiert werden."}
Так что я читал дальше в http://msdn.microsoft.com/en-us/library/system.uri.aspx и наткнулся
Обработка IRI и IDN в классе Uri также может контролироваться с помощью
System.Configuration.IriParsingElement,
System.Configuration.IdnElement и System.Configuration.UriSection
настройка конфигурации классов.
Параметр System.Configuration.IriParsingElement включает или отключает IRI.
обработка в классе Uri. System.Configuration.IdnElement
Параметр включает или отключает обработку IDN в классе Uri.
System.Configuration.IriParsingElement установка также косвенно
контролирует IDN. Обработка IRI должна быть включена, чтобы обработка IDN была
возможный. Если обработка IRI отключена, то обработка IDN будет
установить значение по умолчанию, где поведение .NET Framework 2.0
используется для совместимости, а имена IDN не используются.
К сожалению, мне не удалось найти пример использования System.Configuration.IriParsingElement, System.Configuration.IdnElement и System.Configuration.UriSection. Я понятия не имею, как они используются ...
Итак, моя проблема сводится к следующему: я хочу включить поддержку IDN / IRI в классе URI, но не могу понять, как это сделать. Конфигурационное решение не работает для меня, поэтому я хотел бы попробовать его по коду, но не могу понять, как. Btw. Я также хотел бы знать, почему не работает конфигурация;)