Загрузить App.Config во время выполнения

Я создаю тестовый проект с помощью инструмента IBM Rational Functional Tester (RFT) (мы используем его версию на VB, и он поддерживает только до .net 3.5). В этом проекте я делаю все запросы к базе данных, используя структуру entity. это entity framework извлекает "Metadata", "Connection String" и т. д. из файла App.Config, и RFT не позволяет мне добавить App.Config в проект (я предполагаю, что он так спроектирован - я искал в Google добавление приложения .Config в проект rft и ничего не придумал), а Entity Framework требует, чтобы у вас был файл app.config в точке входа. Я создавал строку для передачи в entity framework в коде, но мой босс действительно делает не таким образом. Поэтому, глядя на мои варианты, я думаю, что любого из следующих двух решений должно хватить (или, если у вас есть лучшее решение, посоветуйте).

  1. Есть ли у них способ загрузить App.Config во время выполнения.
  2. Есть ли у них способ добавить App.Config в проект RFT (действительно, это должен быть мой первый вопрос).

Если вы, ребята, поможете мне с этим, это будет здорово. Заранее спасибо.


person user602182    schedule 17.01.2012    source источник
comment
В проекте, над которым я сейчас работаю. Я подключаюсь через контекст сущности, у меня нет ссылки на EF в моем web.config. Вы абсолютно уверены, что конфиг вам нужен?   -  person Keith Beard    schedule 17.01.2012
comment
@kcbeard: Странно, вчера я добавил комментарий, но, кажется, не вижу его. Чтобы ответить на ваш комментарий Да, мне нужен файл конфигурации, я создал консольное приложение vb.net, просто чтобы проверить, было ли это rft или что-то еще, оказалось, что после добавления файла конфигурации в консольное приложение он работает без каких-либо проблем .   -  person user602182    schedule 18.01.2012
comment
@kcbeard stackoverflow.com/questions/3491165/   -  person user602182    schedule 19.01.2012
comment
Да, я никогда не работал без файла конфигурации, поэтому я действительно не знал, нужен ли он. Я просто знаю, что я определяю свой контекст сущности или в основном определяю свои соединения с базой данных во время выполнения, поэтому изменения автоконфигурации фреймворков сущностей всегда удаляются при работе над проектом. В основном потому, что строки подключения создаются для каждого пользователя. Я хотел бы помочь больше, но у меня нет опыта в том, что вы делаете конкретно.   -  person Keith Beard    schedule 19.01.2012
comment
@kcbeard: эй, я нашел способ вставить ответ ниже, спасибо за помощь   -  person user602182    schedule 21.01.2012


Ответы (1)


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

      ExeConfigurationFileMap map = new ExeConfigurationFileMap();
      map.ExeConfigFilename = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, Assembly.GetExecutingAssembly().ManifestModule.Name + ".config");
      Configuration config = ConfigurationManager.OpenMappedExeConfiguration(map, ConfigurationUserLevel.None);
      var configValue = config.ConnectionStrings.ConnectionStrings["refrenceNameinConfigfile"].ConnectionString;

просто убедитесь, что ваш App.config находится в папке, в которой запущен ваш exe-файл.

person user602182    schedule 20.01.2012