Как создать схему для настраиваемых разделов конфигурации? Я попытался сделать это, но когда я его использовал, он сказал, что единственным ожидаемым элементом было то, что я имел в этой схеме, и жаловался на стандартный материал web.config, хотя я все еще использовал обычный файл DotNetConfig.xsd.
Как создать расширение xsd для схемы web/app.config?
Ответ 1
Этот вопрос, который я нашел, не дублируется, но решение решит вашу проблему:
Как исправить ошибку: "Не удалось найти информацию схемы для атрибута/элемента" путем создания схемы
Фокус в том, чтобы получить "Свойства" редактора app.config и установить значение Schemas
:
- Щелкните правой кнопкой мыши → Свойства в любом месте редактора файлов XML или просто нажмите F4, когда он находится в фокусе
- В этом диалоговом окне добавьте локальную или абсолютную ссылку на файл схемы
Окно/гаджет свойств файла app.config выглядит следующим образом:
Вот пример, который я только что начал работать (я играю с Ninject и NLog). Элементы и атрибуты в разделе nlog
отображаются правильно в Intellisense, и я получаю squiggly строки, если я нарушаю схему.
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="nlog" type="NLog.Config.ConfigSectionHandler, NLog" />
</configSections>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<targets>
<target name="eventLog" xsi:type="EventLog" log="Application"
category="TestService" />
<target name="file" xsi:type="File"
layout="${longdate}|${stacktrace}|${message}"
fileName="${logger}.txt" />
</targets>
<rules>
<logger name="*" minlevel="Info" writeTo="eventLog" />
<logger name="*" minlevel="Debug" writeTo="file"/>
</rules>
</nlog>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
</startup>
</configuration>
Мой файл схемы находится в корне моего проекта, рядом с app.config и называется NLog.xsd
. Я просто сохранил его отсюда:
Ответ 2
Возможно, это просто моя среда или что-то изменилось в .NET 4.6 (не уверен).
Чтобы заставить intellisense работать с недавно созданным файлом app.config...
Шаг 1: добавьте новый элемент App.Config в ваше решение.
Это будет выглядеть так, обратите внимание на ошибки intellisense:
Шаг 2: нажмите F4 в редакторе, чтобы отобразить страницу "Свойства" документа XML:
Мои настройки по умолчанию показывали это:
Шаг 3: Щелкните эллипс, расположенный справа от свойства Schemas выше...
Проверьте DonNetConfig.xsd, закройте окно и начните вводить
Нет ошибок и работает intellisense...
Ответ 3
Когда я попробовал это, это не сработало. Система конфигурации предполагает, что все находится в пространстве имен по умолчанию и дросселирует, если это не так. Это очень разочаровывает.