chiamando il componente c # gestito dal codice c ++ non gestito, come definisco config

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

  •  06-07-2019
  •  | 
  •  

Domanda

Voglio chiamare un componente C # da un servizio c ++ non gestito. Devo impostare gli elementi di configurazione previsti dal componente C #. Quale nome dovrebbe essere configurato e dove dovrebbe trovarsi.

ad es. ParentFolder \ cplusplusservice.exe

anotherfolder \ csharp.dll

Ho bisogno di csharp.dll.config o suo equivalente.

Grazie,

È stato utile?

Soluzione

Il file .config deve essere identico al nome dell'applicazione. Quando il codice non gestito chiama per la prima volta nel codice gestito, viene creato un AppDomain che AppDomain controlla quale file di configurazione viene caricato e da dove.

Dovrai copiare manualmente il file .config nella directory di output e nominarlo dopo il nome dell'applicazione o creare un post-build per farlo.

Fondamentalmente le stesse regole che si applicano a dove i file .config devono essere per le app gestite pure si applicano alle app non gestite che caricano codice gestito.

Altri suggerimenti

Questo articolo mostra come utilizzare i file di configurazione con c #:

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

Questo articolo fornisce una panoramica delle chiamate al componente c # gestito da c ++ non gestito e viceversa, nonché alcune classi di supporto:

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

Dipende da come viene creato AppDomain che ospita il tuo codice gestito.

Ad esempio, se stai esponendo il codice gestito come COM, verrà caricato nell'AppDomain predefinito e il file di configurazione sarà nella stessa directory dell'eseguibile (parentfolder \ cplusplusservice.exe.config nel tuo caso) .

Se stai creando l'AppDomain da solo, puoi controllare dove si trova il file di configurazione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top