Где поместить файл app.config в решение с несколькими проектами - ошибка - PullRequest
0 голосов
/ 19 января 2012

У меня есть одна проблема.Я принял решение, и это 3-х уровневое приложение.Итак, у меня есть 3 проекта, которые являются библиотеками классов, и один - это приложение Windows Form, которое будет использовать меня для запуска всего этого и соединения их вместе.Проблема в том, что у меня есть файл app.config слоя данных.Если я помещу это в ту DLL, то я не смогу это прочитать.Если я помещу его в основную программу (приложение Windows Form), я все равно не смогу его прочитать.

Поэтому мой вопрос: куда поместить файл app.config, чтобы я мог его нормально читать?Я читаю это из DLL.Это должно быть так, потому что это приложение 3.tier и все слои сами по себе.Итак, один - это уровень данных, бизнес-логика и уровень представления.

Пожалуйста, помогите.

РЕДАКТИРОВАТЬ:

хорошо, я передам код:

такЯ читаю из файла app.config слоя данных следующим образом:

SqlConnection konekcija = new SqlConnection(ConfigurationManager.AppSettings["skripta"]);

Файл app.config в этом проекте библиотеки классов:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0"/>
  </startup>
  <appSettings>
    <add key="skripta"
           value="Data Source=DENONTH-PC;Initial Catalog=rups;Integrated Security=True;Pooling=False" />
  </appSettings>
</configuration>

У меня есть app.config в этом классеlibrabry и в проекте Windows form, и до сих пор ничто не ссылается на него должным образом.

Ответы [ 2 ]

7 голосов
/ 19 января 2012

Обычно у меня есть один app.config на проект, но реальные значения хранятся в конфигурации основного (обычно пользовательского интерфейса) приложения.Затем я создаю некоторый проект Core / Utility и там я создаю один класс, который отвечает за предоставление ключей / значений конфигурации.Проект Core / Utility не имеет зависимостей, но может (и есть!) Ссылаться на любой проект, для которого требуются значения конфигурации.Это дает мне действительно простой уровень абстракции, если однажды я захочу перейти, например, на конфигурацию, управляемую базой данных.

Итак, в конце: поместите все в конфигурацию форм Windows.Он должен быть абсолютно доступным из библиотеки классов, если используется класс ConfigurationManager.

Редактирование # 1: прежде всего, если вы хотите сохранить и использовать строку подключения, сделайте это правильно, что означает: в app.config:

<connectionStrings>
    <add name="ConnString" connectionString="server..."/>
</connectionStrings>

в коде:

ConfigurationManager.ConnectionStrings["ConnString"];

Попробуйте сейчас.Я уверен, что вы делаете что-то не так, потому что ваш код должен работать.

0 голосов
/ 19 января 2012
You can add app config file in windows application. You can access it by using ConfigurationManager class.

См. Эту ссылку также, надеюсь, это может помочь вам.

Визит http://msdn.microsoft.com/en-us/library/ms184658%28v=vs.80%29.aspx

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