Llamar al componente C # administrado desde el código C ++ no administrado, ¿cómo defino config

StackOverflow https://stackoverflow.com/questions/1020964

  •  06-07-2019
  •  | 
  •  

Pregunta

Quiero llamar a un componente C # desde un servicio de C ++ no administrado. Necesito establecer los elementos de configuración esperados por el componente C #. Qué nombre debe ser config y dónde debe ubicarse.

por ejemplo. parentfolder \ cplusplusservice.exe

otra carpeta \ csharp.dll

necesito csharp.dll.config o su equivalente.

Gracias,

¿Fue útil?

Solución

El archivo .config debe tener el mismo nombre que la aplicación. Cuando el código no administrado llama por primera vez al código administrado, se crea un AppDomain que AppDomain controla qué archivo de configuración se carga y desde dónde.

Deberá copiar manualmente el archivo .config en el directorio de salida y nombrarlo después del nombre de la aplicación o crear una postcompilación para hacerlo.

Básicamente, las mismas reglas que se aplican a dónde deben estar los archivos .config para aplicaciones administradas puras se aplican a aplicaciones no administradas que cargan código administrado.

Otros consejos

Este artículo muestra cómo usar archivos de configuración con c #:

http://www.devasp.net/net/articles/display /679.html

Este artículo proporciona una descripción general de la llamada al componente C # administrado desde c ++ no administrado y viceversa, así como algunas clases auxiliares:

http://www.codeproject.com/KB/mcpp/unmanaged_to_managed.aspx

Depende de cómo se cree el AppDomain que aloja su código administrado.

Por ejemplo, si está exponiendo el código administrado como COM, se cargará en el AppDomain predeterminado y el archivo de configuración estará en el mismo directorio que el ejecutable (parentfolder \ cplusplusservice.exe.config en su caso) .

Si está creando el AppDomain usted mismo, puede controlar dónde se encuentra el archivo de configuración.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top