2009-05-20 5 views
2

J'ai travaillé sur une bibliothèque .NET. Bien sûr, .NET a une bonne façon de travailler avec les configurations, et donc je peux documenter aux utilisateurs de la bibliothèque ce qu'ils doivent mettre dans leur app.config.Quelle est la façon "standard" d'initialiser une bibliothèque basée sur COM

Cependant, je dois également exposer la bibliothèque en tant qu'objet COM, pour le support hérité. Certains utilisateurs de la bibliothèque seront des applications VB6, qui n'ont pas de concept app.config.

Je sais que je peux "fudge" le fichier en utilisant OpenExeConfiguration, avec le nommage, mais cela me pose d'autres problèmes.

Existe-t-il un moyen commun d'initialiser votre bibliothèque basée sur COM? Dans le pire des cas, je peux exposer une méthode d'initialisation, qui prend tous les paramètres d'initialisation comme des paramètres individuels, mais je crains que cela rende difficile l'ajout de nouveaux paramètres d'initialisation, car cela entraîne une rupture de l'interface API. Je suppose que je pense à faire passer quelque chose comme un tableau de paires valeur/clé, mais avant de le faire, existe-t-il un moyen "standard" que je ne considère pas?

Répondre

3

Hmmm, vérifiez vos hypothèses.

Le fichier app.config n'a rien à voir avec l'utilisation de VB6 dans l'exe. La chose app.exe.config est une convention .NET. Lorsque le code .NET est chargé dans un exe, il recherche dans .config les paramètres de configuration. Cela n'a pas d'importance si VB6 a été utilisé pour créer l'exe. Par exemple, si vous construisez un composant COM dans .NET, puis l'hébergez dans dllhost.exe, votre logique .NET lira sa configuration à partir d'un fichier appelé dllhost.exe.config, situé dans le même répertoire que dllhost .exe (qui est habituellement% windir% \ system32). Le fait que le binaire dllhost.exe n'a aucune connaissance du fichier .config est sans importance. A part ça, votre plan pour utiliser une paire clé/valeur pour init est bon. Il est facile à utiliser, flexible, extensible. Vous pouvez faire les deux - le fichier de configuration et la méthode Init(), pour permettre à Init de surcharger les choses si nécessaire. Dans de nombreux cas, le fichier .config n'est accessible qu'aux administrateurs et n'est pas modifiable. Vous aurez peut-être besoin d'un moyen de fournir des paramètres définissables par l'utilisateur, en dehors du fichier .exe.config.

Voir aussi: How can I debug a VB6 project that has a .NET interop component?

  • réponses à que pointe question que lorsque le débogage, vous devez utiliser vb6.exe.config pour votre fichier de configuration, alors que lorsque vous avez besoin en cours d'exécution app-name.exe. config.
Questions connexes