chamando # componente c gerenciado a partir de não gerenciado c ++ código, como faço para definir configuração
Pergunta
Eu quero chamar um componente C # a partir de um c não gerenciado ++ serviço. Eu preciso itens de configuração conjunto esperado pelo componente C #. O nome deve ser configuração ser e onde ele deve ser localizado.
por exemplo. ParentFolder \ cplusplusservice.exe
anotherfolder \ csharp.dll
Eu preciso csharp.dll.config ou seu equivalente.
Obrigado,
Solução
O arquivo config precisa ser nomeado o mesmo que o nome do aplicativo. Quando o código não gerenciado primeiras chamadas para o código gerenciado um AppDomain é criado que controles AppDomain que arquivo de configuração é carregado e de onde.
Você precisará copiar manualmente o arquivo config no diretório de saída e nomeá-la após o nome do aplicativo ou criar um post-build a fazê-lo.
Basicamente as mesmas regras que se aplicam ao local onde config arquivos precisam ser para aplicativos gerenciados puros aplica a aplicativos não gerenciados que código gerenciado carga.
Outras dicas
Este artigo mostra como usar arquivos de configuração com c #:
http://www.devasp.net/net/articles/display /679.html
Este artigo fornece uma visão geral chamando gerenciado c # componente de c ++ não gerenciado e vice-versa, bem como algumas classes auxiliares:
http://www.codeproject.com/KB/mcpp/unmanaged_to_managed.aspx
Depende de como o AppDomain que está hospedando o código gerenciado é criado.
Por exemplo, se você está expondo o código gerenciado como COM, ele será carregado no padrão AppDomain, eo arquivo de configuração será no mesmo diretório que o executável (ParentFolder \ cplusplusservice.exe.config no seu caso) .
Se você está criando o AppDomain, você pode controlar onde o arquivo de configuração está localizado.