Конфигурационные файлы с COM - PullRequest
1 голос
/ 16 июля 2009

У меня есть старое приложение PowerBuilder, которое мы постепенно прекращаем. Мы также переходим к более ориентированной на обслуживание. Поэтому, чтобы упростить это, мы используем C # COM-оболочки для вызова методов WCF, поэтому старые прямые вызовы SQL можно медленно удалять. Мы также используем оболочки C # COM, когда в приложении Power Builder требуется функциональность.

Поскольку мы используем COM-вызовы DLL из PowerBuilder в C #, внешний исполняемый файл не требуется. Это означает, что файл app.config не будет загружен сам по себе. По крайней мере, это то, что я заметил. Пример. Допустим, основная библиотека DLL с методами-обертками - это Wrapper.dll. Если бы у меня был конфиг с именем Wrapper.dll.config, он не загрузился бы, когда я сделал вызов из PowerBuilder в C #.

Причина, по которой я хотел бы использовать файл конфигурации, заключается в том, что я хотел бы начать использовать log4net в библиотеках C #, чтобы упростить отладку, потому что это достаточно сложно с PowerBuilder. Есть и другие причины, по которым я хотел бы загрузить файлы конфигурации, но проще всего объяснить, в основном, проще настроить некоторые вещи с помощью файла конфигурации.

Так есть ли способ загрузить файлы конфигурации в диспетчер конфигурации для COM-вызова?

Спасибо Tony

Ответы [ 3 ]

0 голосов
/ 16 июля 2009

Хороший фрагмент JP.

По умолчанию сборки времени выполнения фактически получают свои параметры конфигурации из файла конфигурации вызывающего исполняемого файла. Ваш фрагмент позволяет загружать один фрагмент, связанный с собственно библиотечной сборкой.

0 голосов
/ 16 июля 2009

Спасибо за ответы, хотя они были полезны, но это было не то, что я искал. Самый простой способ сделать то, что мне нужно, это присвоить файлу конфигурации имя вызывающего приложения exe. Поэтому, если имя приложения - test.exe, а ваш C # dll - wrapper.dll, тогда вы назовете файл конфигурации test.exe.config. Поскольку test.exe в этом случае является приложением PowerBuilder, я могу сойти с рук на данный момент. Если бы это было приложение .net (и, возможно, другие), оно, вероятно, уже имело бы конфигурацию и таким образом мешало бы.

Tony.

0 голосов
/ 16 июля 2009

Проверьте этот код из Майк Вудринг . Я думаю, что это позволит вам делать то, что вы хотите.

...