WebReference создает App.config даже в проекте сборки библиотеки - PullRequest
2 голосов
/ 21 мая 2009

Почему при добавлении веб-ссылки в проект сборки библиотеки создается файл app.config для проекта? он не будет использоваться во время выполнения, верно? - поскольку на каждый хост-процесс (исполняемый файл) может быть только один корневой конфигурационный файл, - поэтому только исполняемые файлы получают свои app.configs, переименованные в «projectName.exe.config» и развернутые в выходной папке в процессе компиляции.

В любом случае, единственное, что есть, - это раздел applicationSettings с одним параметром конфигурации с URL-адресом веб-службы, который в общем случае будет динамически задан ops с использованием отдельного параметра конфигурации в любом случае ...

Кроме того, если в главном процессе есть несколько зависимых библиотечных сборок с веб-ссылками, какой смысл? Какие из множества настроек (по одному на каждую зависимую библиотечную сборку) будут использованы?

В любом случае, я хочу избавиться от этих app.configs, чтобы избежать исключения, когда система конфигурации не может найти настройку во время выполнения, но, поскольку я не понимаю, почему она вообще существует ... Я что-то упустил?

Ответы [ 2 ]

4 голосов
/ 21 мая 2009

Пометить веб-ссылку как static (щелчок правой кнопкой мыши -> свойства -> поведение URL). Тогда URL будет сохранен в файле reference.cs вместо файла .config.

Когда сборка с собственным app.config загружается в приложение, имеющее отдельный файл .config, я считаю, что оно объединяет файлы .config так же, как файл machine.config объединяется с сетью. config (хотя я могу ошибаться в этом вопросе).

0 голосов
/ 21 мая 2009

Вы уже ответили на свой вопрос - добавлен app.config, потому что в веб-ссылке нужно где-то хранить URL-адрес службы. Лучше хранить в файле конфигурации, чем жестко закодировать в файл * .cs, нет?

Если у вас есть зависимые сборки, все используемые из основного приложения, будет использоваться только файл app.config основного приложения (переименованный в mainapp.exe.config) - зависимые сборки будут использовать файл конфигурации основного приложения. Файл app.config, созданный путем добавления веб-ссылки, существует только как место, где вы можете проверить, какие настройки необходимо ввести в основной файл app.config.

Если у вас есть отдельное место, где вы настраиваете все URL-адреса своих веб-сервисов (например, таблица базы данных или что-то в этом роде), вы можете выбросить сгенерированные файлы app.config - никаких проблем там нет.

Марк

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...