Jak uzyskać intellisense w aplikacji.config dla sekcji niestandardowej?

Mamy sekcję niestandardową w mojej aplikacji.plik konfiguracyjny związany z naszą klasą kontenerów IoC. Jak Mogę uzyskać intellisense podczas edycji pliku konfiguracyjnego dla tej sekcji, a także pozbyć się komunikatów kompilatora informujących mnie o brakującym schemacie.

Znalazłem to pytanie tutaj: app.config configSections ustawienia niestandardowe nie mogą znaleźć informacji o schemacie, ale nie rozumiem, czy dotyczy to mojego problemu, czy nie, i jak użyć tam odpowiedzi, jeśli tak.

Ja również jak uzyskać Intellisense dla sieci?config i App.config w Visual Studio. NET , ale mówi, aby usunąć atrybut xmlns przed uruchomieniem aplikacji. Czy to naprawdę jedyny / najlepszy sposób?

Oto przykład prostego pliku:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="ServiceContainers"
        type="LVK.IoC.RegistrationsSectionHandler, LVK"/>
  </configSections>
  <ServiceContainers>
    <Registration type="DatabaseConnection" class="DatabaseConnection">
      <Parameter name="connectionString" type="System.String"
          value="TYPE=MSSQL2000;SERVER=localhost;DATABASE=db"/>
    </Registration>
  </ServiceContainers>
</configuration>

Zasadniczo chciałbym móc wpisać <R wewnątrz <ServiceContainers> węzła i uzyskać sugerowaną mi rejestrację w rozwijanym intellisense, a także odpowiednie dla niej atrybuty.

Author: Community, 2008-12-18

2 answers

XML Intellisense nie będzie automatycznie działać dla niestandardowej sekcji konfiguracji.

Visual Studio może zgłaszać ostrzeżenia podczas kompilacji narzekając, że atrybuty sekcji custom configuration nie są zdefiniowane. Ostrzeżenia te mogą być ignorowane.

Jeśli chcesz, aby Obsługa XML IntelliSense dla niestandardowej sekcji konfiguracji (lub jeśli po prostu chcesz, aby ostrzeżenia "schema not found" zniknęły), dodaj następującą linię do DotNetConfig.plik xsd zaraz po pierwszym line (czyli zazwyczaj druga linia w DotNetConfig.plik xsd).

<xs:include schemaLocation="YOUR_DIRECTORY\namespace.assemblyname.xsd"/>

DotNetConfig.plik xsd można znaleźć w katalogu instalacyjnym Visual Studio 8 (lub 9) w podkatalogu XML\Schemas.

 21
Author: Steven A. Lowe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-12-19 14:51:48

Jeśli nie chcesz modyfikować swojego DotNetConfig.xsd można dodać konfigurację xsd "inline".

W Twoim przypadku dodaj następujące atrybuty do sekcji custom

<ServiceContainers xmlns="your_xmlns"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="your_xmlns location_of_your_schema">

         <Registration ....

</ServiceContainers>

Jest to przydatne podczas lokalnego testowania XSD, ponieważ location_of_your_schema może być ścieżką lokalną i kiedy będziesz gotowy do produkcji Zmień location_of_your_schema na publiczny adres url pliku xsd.

Zauważ, że atrybut XSI:schemaLocation musi zawierać pary łańcuchów oddzielonych spacjami, gdzie pierwszy łańcuch w każdej parze jest przestrzenią nazw URI, a drugi łańcuch jest lokalizacją schematu.

 4
Author: Juan M. Elosegui,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-09-10 17:20:08