appelant composant c # géré à partir de code c ++ non géré, comment puis-je définir config
Question
Je souhaite appeler un composant C # à partir d'un service c ++ non géré. Je dois définir les éléments de configuration attendus par le composant C #. Quel nom doit être config et où doit-il être situé.
par exemple. dossier parent \ cplusplusservice.exe
un autre dossier \ csharp.dll
j'ai besoin de csharp.dll.config ou de son équivalent.
Merci,
La solution
Le fichier .config doit porter le même nom que le nom de l'application. Lorsque le code non géré appelle pour la première fois le code géré, un objet AppDomain est créé. Ce dernier contrôle le fichier de configuration qui est chargé et son emplacement.
Vous devrez copier manuellement le fichier .config dans le répertoire de sortie et le nommer après le nom de l'application ou créer une post-génération à cet effet.
En gros, les mêmes règles qui s'appliquent aux endroits où les fichiers .config doivent s'appliquer aux applications gérées pures s'appliquent aux applications non gérées qui chargent du code managé.
Autres conseils
Cet article explique comment utiliser les fichiers de configuration avec c #:
http://www.devasp.net/net/articles/display /679.html
Cet article fournit une vue d'ensemble de l'appel du composant c # géré à partir d'un c ++ non géré et inversement, ainsi que de certaines classes d'assistance:
http://www.codeproject.com/KB/mcpp/unmanaged_to_managedman.aspx
Cela dépend de la manière dont est créé le domaine AppDomain hébergeant votre code managé.
Par exemple, si vous exposez le code managé en tant que COM, il sera chargé dans le répertoire AppDomain par défaut et le fichier de configuration se trouvera dans le même répertoire que l'exécutable (dossier_dossier \ cplusplusservice.exe.config dans votre cas). .
Si vous créez vous-même l'AppDomain, vous pouvez contrôler l'emplacement du fichier de configuration.