8 votos

ESRI ArcMap Agregar-en Config.esriaddinx

Estoy en el proceso de conversión de una mayor extensión de ArcMap para un Complemento En C# y estoy tratando de aprovechar al máximo el basado en XML de configuración.

Config.esriaddinx funciona muy bien para el equipo básico (barra de herramientas, botones, extensión de la información, etc), pero hay una manera de agregar otros parámetros de configuración, tales como nombres de campo, los nombres de capa, conexiones de base de datos, etc?

Necesito crear una Aplicación.archivo de configuración? Si es así, sería la Aplicación.archivo de configuración todavía ser embalada/desplegado de la misma como el resto de add-in? ¿Cuál sería el mejor método para leer los parámetros? Soy un novato de complementos y cualquier sugerencia o muestras, sería muy apreciado. Gracias!

4voto

auramo Puntos 161

En primer lugar, no he intentado usar Config.esriaddinx para este propósito, pero yo no lo recomiendo. Está diseñado para la configuración del complemento en sí mismo, no necesariamente los datos de usuario, y usted probablemente no quiere mezclar los dos.

Ha sido un tiempo desde que he tratado con esto por mí mismo, así que puede ser un poco difusa en los detalles, pero hay varios problemas con el uso de archivos de configuración en ArcGIS complementos: ESRI ArcMap Complemento con de la aplicación.la configuración de no reconocer a la aplicación.los cambios de configuración

En particular, el directorio el complemento que se extrae se sobrescribe cada vez que se inicia la aplicación, así que realmente no pueden persistir los cambios a la configuración de allí. Si su configuración no cambiar nunca o sólo cambian con cada nueva versión de su complemento, a continuación, probablemente esta no sea una preocupación.

Sin embargo, si usted desea hacer su complemento en configurables por el usuario final, entonces usted necesita para almacenar la configurable por el usuario de la información en otros lugares para que no se sobrescriban. Yo sugeriría utilizando el usuario de Datos de la Aplicación de la carpeta, cuya ruta de acceso puede determinar mediante programación así:

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)

También sugiero ponerlo en una subcarpeta con el nombre después de su complemento. Pero básicamente lo que sería de carga desde y guardar a un archivo en esa ubicación en lugar de la lectura de la configuración de su complemento en la Settings de la clase o el archivo de configuración en el complemento del directorio. Si desea utilizar .Configuración de RED para este entonces le sugiero leer sobre la Configuración de la Aplicación y ConfigurationManager.

El otro problema que he tenido es con el uso de secciones de configuración personalizada cuando se utiliza .Configuración de RED. El uso de Assembly.LoadFrom y el manejo de la AssemblyResolve evento fue la solución para ese problema en particular, aunque en ese caso yo no terminaron de usar .Configuración de RED para esa y otras razones.

Dependiendo de la complejidad de su configuración escenario, se podría, como lo hice yo, descartar el uso de la .Configuración de RED del sistema completo y en lugar de utilizar algún otro método de lectura y escritura de información de configuración. Terminé usando SerializableAttribute-marcado clases o clases que implementan IXmlSerializable para este propósito en uno de los complementos más complejos que he creado que incluye configurable por el usuario configuración, tales como la lista de capas, ajustes de conexión, etc. Yo recomendaría la lectura de la Serialización de Objetos .NET, la Introducción de la Serialización XML y Cómo Implementar IXmlSerializable Correctamente si usted está interesado en ese enfoque.

Suena como que es tuyo a lo largo de las líneas de la misma forma que a usted, pero me he encontrado con la serialización XML enfoque a ser preferible .Configuración de RED para todos, pero el más simple de los escenarios de configuración (tipos de datos simples, sin jerarquías/colecciones).

1voto

domgblackwell Puntos 111

Crear un config.xml el archivo y establecer que la acción de generación AddInContent bajo el VS propiedades para el archivo.

Para agregar a esta basada en el comentario, ya lo están haciendo en C# yo estaba asumiendo que usted está utilizando Visual Studio para crear el complemento. Desde allí, si se agrega un archivo de configuración XML en el archivo de opción nueva y asígnele el nombre config.xml se creará por defecto un archivo vacío. Desde aquí se puede especificar el valor de la clave del xml de configuración en el appSettings de la etiqueta de la misma como un archivo de configuración xml y, a continuación, se refieren a estos de código como lo haría normalmente. Para cambiar la acción de generación, cuando se tiene el archivo seleccionado en el VS, mire la ventana de propiedades y debe haber una acumulación de configuración de la acción. Si selecciona esta opción, se mostrará un desplegable de las opciones disponibles, seleccione AddInContent de la lista.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X