Что такое «стандартный» способ инициализации библиотеки на основе COM - PullRequest
2 голосов
/ 20 мая 2009

Я работал над библиотекой .NET. Конечно, в .NET есть хороший способ работы с конфигурациями, и поэтому я могу задокументировать пользователям библиотеки, что им следует поместить в их app.config.

Однако я также должен представить библиотеку как COM-объект для устаревшей поддержки. Некоторые пользователи библиотеки будут приложениями VB6, у которых нет концепции app.config.

Я знаю, что могу «выдумать» файл, используя OpenExeConfiguration, наряду с именами, но это вызывает у меня другие проблемы.

Есть ли общий способ инициализации вашей библиотеки на основе COM? В худшем случае я могу представить метод инициализации, который принимает все параметры инициализации в качестве отдельных параметров, но я боюсь, что это затрудняет добавление новых параметров инициализации, поскольку это приводит к нарушению интерфейса API.

Думаю, я собираюсь передать что-то вроде массива пар ключ-значение, но прежде чем я это сделаю, есть ли "стандартный" способ, который я не рассматриваю?

1 Ответ

3 голосов
/ 20 мая 2009

Хммм, проверь свои предположения.

app.config не имеет никакого отношения к тому, используется ли VB6 в exe. App.exe.config - это соглашение .NET. Когда код .NET загружается в исполняемый файл, он ищет в файле .config настройки конфигурации. Неважно, если VB6 был использован для создания EXE.

Например, если вы создаете COM-компонент в .NET, а затем размещаете его в dllhost.exe, ваша логика .NET будет считывать свою конфигурацию из файла с именем dllhost.exe.config, расположенного в том же каталоге, что и dllhost. exe (обычно% windir% \ system32). Тот факт, что двоичный файл dllhost.exe не знает о файле .config, не имеет значения.

Кроме того, ваш план использования пары ключ / значение для init хорош. Это простой в использовании, гибкий, расширяемый. Возможно, вы захотите сделать оба - файл конфигурации и метод Init (), чтобы позволить Init переопределять вещи по мере необходимости. Во многих случаях файл .config доступен только администраторам и не подлежит изменению. Таким образом, вам может понадобиться какой-то способ предоставить определяемые пользователем настройки вне .exe.config.

См. Также: Как отладить проект VB6 с компонентом взаимодействия .NET?

  • отвечает на , что вопрос указывает на то, что при отладке вы должны использовать vb6.exe.config для своего конфигурационного файла, тогда как при запуске вам нужен app-name.exe.config.
...