visual studio example connectionstrings app c# .net configuration app-config custom-sections

c# - studio - ¿Cómo obtengo intellisense en app.config para una sección personalizada?



configurationmanager c# (2)

XML Intellisense no funcionará automáticamente para una sección de configuración personalizada.

Visual Studio puede informar advertencias en compilación quejándose de que los atributos de la sección de configuración personalizada no están definidos. Estas advertencias pueden ser ignoradas.

Si desea soporte de XML IntelliSense para una sección de configuración personalizada (o si solo desea que desaparezcan las advertencias de ''esquema no encontrado''), agregue la siguiente línea a su archivo DotNetConfig.xsd inmediatamente después del primer <xs: esquema ...> línea (que suele ser la segunda línea en el archivo DotNetConfig.xsd).

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

El archivo DotNetConfig.xsd se puede encontrar en su directorio de instalación de Visual Studio 8 (o 9) en el subdirectorio Xml / Schemas.

Tenemos una sección personalizada en mi archivo app.config relacionado con nuestra clase de contenedor IoC. ¿Cómo puedo obtener intellisense cuando edito el archivo de configuración para esta sección, así como deshacerme de los mensajes del compilador que me informan del esquema que falta?

Encontré esta pregunta aquí: la configuración personalizada de app.config configSections no puede encontrar información de esquema , pero no entiendo si se aplica a mi problema o no, y cómo usar la respuesta allí si lo hace.

También encontré esta página Cómo obtener Intellisense para Web.config y App.config en Visual Studio .NET , pero dice que debe eliminar el atributo xmlns antes de ejecutar la aplicación. ¿Es esa la única / la mejor manera?

Aquí hay un ejemplo de un archivo simple:

<?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>

Básicamente, me gustaría poder escribir <R dentro del nodo <ServiceContainers> y obtener el registro sugerido en el menú desplegable Intellisense, así como los atributos adecuados para él.


Si no desea modificar su DotNetConfig.xsd, puede agregar la configuración de xsd "en línea".

En su caso, agregue los siguientes atributos a la sección personalizada

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

Esto es útil mientras se prueba un xsd localmente porque location_of_your_schema podría ser una ruta local y cuando esté listo para la producción cambie location_of_your_schema a la url pública del archivo xsd.

Tenga en cuenta que el atributo xsi: schemaLocation debe contener pares de cadenas separadas por espacios donde la primera cadena en cada par es un URI de espacio de nombres y la segunda cadena es la ubicación de un esquema.