Читайте свойства конфигурации из другого проекта в том же решении C # - PullRequest
0 голосов
/ 16 апреля 2019

У меня есть решение с именем WebServiceProject .

Внутри этого решения у меня есть три проекта:

  • Общий (Библиотека классов)
  • UserInterface (проект WinForms)
  • WebService (сервисный проект WCF)

В проекте WebService у меня есть файл app.config с таким содержанием:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b72a5b561321d079">
      <section name="WebService.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b72a5b561321d079" requirePermission="false"/>
    </sectionGroup>
  </configSections>
  <startup>
  <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/></startup>
  <appSettings>
    <add key="ConnectionString" value="mydatabase@localhost"/>
  </appSettings>
  <system.serviceModel>
    <bindings/>
    <client/>
  </system.serviceModel>
</configuration>

В проекте WebService я выполняю некоторую запланированную процедуру, вызывающую классы проекта Common , считывающие файл ConnectionString из app.config файла:

if (!string.IsNullOrEmpty(ConfigurationManager.AppSettings["ConnectionString"]))
{
    // I do something
}

Если я запускаю только WebService , все работает нормально.

Внутри WinForms проекта UserInterface , у меня есть кнопка, которая запускает подпрограмму внутри Common проекта, как WebService .

Но если я " Установить как проект запуска ", UserInterface проецирует предыдущий фрагмент кода ConfigurationManager.AppSettings["ConnectionString"], выдает ошибку, потому что я не указал ConnectionString в проект app.config in UserInterface .

Итак, мой вопрос: как я могу прочитать свойство ConnectionString из события проекта WebService , если я " Установить как проект запуска " UserInterface проект? В общем, как я могу прочитать свойство app.config из другого проекта, отличного от выполненного?

Ответы [ 3 ]

1 голос
/ 16 апреля 2019

Просто прочитайте файл и проанализируйте его как XML. Затем получите ваш value, читая интересующий вас key.

0 голосов
/ 24 апреля 2019

Я нашел эту ссылку очень полезной:

Настройки приложения в приложении или веб-конфигурации с использованием связанного файла

Благодаря @ Даниэлю Стэкендленду

0 голосов
/ 16 апреля 2019

Вы можете поместить настройки приложения из вашего проекта веб-сервиса в app.config вашего UI-проекта.

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