2014-09-05 1 views
0

У меня есть проект C# MVC, над которым я сейчас работаю, с базовой архитектурой плагина, реализованной через MEF. Плагины и их соответствующие части загружаются через веб-интерфейс и помещаются в папку плагина, которую они затем открывают при запуске приложения.C# Как встраивать строку соединения в класс?

Некоторые из плагинов потребуют доступа к данным для внешних баз данных (а не для основной базы данных). Когда приложение запустится, я не смогу легко внести изменения в файл web.config основного приложения.

Итак, мой вопрос заключается в том, как я могу встроить строку соединения непосредственно в один из классов моего плагина?

+0

Я мог бы хранить строку подключения в базе данных, но мне все равно придется ссылаться на нее прямо в моем плагине без изменения web.config основного приложения; следовательно, проблема. Имейте в виду, что у меня не будет доступа к серверу, на котором работает приложение, помимо функций, которые я вложил во внешний интерфейс, например, возможность загрузки плагинов. – dcrdev

+0

Hi User3861788 Помогите с этим вопросом? http://stackoverflow.com/questions/24971606/asp-net-mvc-5-mef-how-to-programmically-import-and-export-parts Похоже, вы могли иметь MVC с MEF, имеющим плагиновую структуру. У вас есть страница настроек администратора, где вы можете включать и отключать плагины? – Kbdavis07

ответ

0

Пара идей:

1) Только жесткий код это: Con: Я думаю, что вы беспокоитесь об изменении строки соединения на лету. Так что это не сработает для того, что вам нужно.

2) Сохраните другой файл конфигурации на общем диске, к которому вы МОЖЕТЕ получить доступ. Pro: Давайте изменим строку соединения на лету. Con: Не лучший вариант для обеспечения безопасности.

3) Используйте аутентифицированный веб-сервис. При запуске вызовите веб-службу (и, возможно, каждый час или сбой подключения), чтобы получить строку подключения. Pro: Это позволяет вам изменять строку соединения на лету. Pro: Это может быть реализовано с защитой

Из трех вариантов номер три, по-видимому, наилучшим образом соответствует вашим потребностям. Но это совсем не в моей голове.