powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Файл параметров как ссылка в двух и более проектах
5 сообщений из 5, страница 1 из 1
Файл параметров как ссылка в двух и более проектах
    #38233924
Thor234
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Товарищи такая делема:
Есть солюшен с проектом приложения (.exe) и много много проектов библиотек (.dll). В библиотеках находятся типизированные наборы данных. Так вот дабы всем адаптерам таблиц задать одну и ту же строку подключения в дизайнтайме , я в Settings.settings основного приложения добавил строку подключения, а сам файл с параметрами Settings.settings подобавлял в проекты как линк (Add as link) и уже у адаптеров присвоил строку подключения из файла-линка. И все бы хорошо, меняешь строку подключения в основном приложении и тут же все длл подхватывают её, красота! ...да не тут то было, это работает до тех пор пока добавляешь только один линк на параметры, как только добавляешь линк у второй библиотеки, первая перестает видеть пространство имен...хрень какая-то, уже перелопатил .csproj все в норме. Пока ссылка на файл параметров только у одной библиотеки все ок, как только добавляешь линк еще одной библиотеке предыдущая перестает видеть пространство имен Settings и т.д. В итоге на весь солюшен файл параметров как ссылка может видеть только один проект длл. Кто-нибудь сталкивался с подобным? Как побороть?
...
Рейтинг: 0 / 0
Файл параметров как ссылка в двух и более проектах
    #38234017
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Thor234,

У меня была подобная задача.
Решил следующим образом:
1. Вынес общие для разных модулей настройки в один XML файл.
2. В настройках для каждого модуля прописал путь к этому файлу
3. В процедуре инициализации модуля идёт обращение к файлу, из соответствующих секций считываются необходимые настройки и т.д.

Если же проблема с инициализацией строки подключения, то для этого у адаптера соединение можно сделать публичным и уже из кода инициализировать строку подключения.
Вот кусочек кода для чтения настроек:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
public class DMDBModule : IDisposable
{
    private static DMDBModule fModule = null;
    private SqlConnection fConnection = null;
    private string sConnString = "";

    public static DMDBModule DataModule
    {
        get
        {
            if (fModule == null)
            {
                fModule = new DMDBModule();
            }
            return (DMDBModule)fModule;
        }
    }

    private DMDBModule()
    {
        XmlDocument doc = new XmlDocument();
        doc.Load(WebConfigurationManager.AppSettings.Get("appsets")); // Загружаем общий файл настроек

        sConnString = doc.DocumentElement.SelectSingleNode("descendant::connstr").Attributes["connection"].Value;// Строка соединения
        fConnection = new SqlConnection(sConnString); // Организуем пул соединений
        ...
    }

    public string getConnectionString()
    {
        return sConnString;
    }
...
}

А это пример кода использования настроек с адаптерами:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
...
public class PhoneList : System.Web.Services.WebService {

    private dsHelpDeskTableAdapters.spGetPhoneListTableAdapter taPL = null;

    public PhoneList () {
        if (taPL == null)
        {
            taPL = new dsHelpDeskTableAdapters.spGetPhoneListTableAdapter();
            taPL.Connection.ConnectionString = DMDBModule.DataModule.getConnectionString();
        }
    }
...


...
Рейтинг: 0 / 0
Файл параметров как ссылка в двух и более проектах
    #38234196
Thor234
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alex Kuznetsov,

Спасибо, но задача именно в дизайнайме указать строку подключения хранящуюся в параметрах основного приложения, назначить ее из кода проблем конечно не вызывает, можно и SettingsManager'ом открыть параметры основного приложения и оттуда считывать строку подключения.
...
Рейтинг: 0 / 0
Файл параметров как ссылка в двух и более проектах
    #38235004
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Thor234Alex Kuznetsov,

Спасибо, но задача именно в дизайнайме указать строку подключения хранящуюся в параметрах основного приложения, назначить ее из кода проблем конечно не вызывает, можно и SettingsManager'ом открыть параметры основного приложения и оттуда считывать строку подключения.Хм, странно конечно это... А что если вдруг в продуктивной среде будет использоваться другой адрес для сервера базы данных? Тогда придётся перед поставкой приложения и модулей их повторно компилировать и собирать?
Ну да ладно, дело как говорится Ваше. Но вот только не вижу я особого смысла в дизайн тайме хранить настройки в одном и том-же файле для разных проектов. Да и не нужно мне это...
Хотя задачка интересная, заставить студию считывать для разных проектов в одном решении информацию из одного и того-же настроечного файла.
...
Рейтинг: 0 / 0
Файл параметров как ссылка в двух и более проектах
    #38236939
Thor234
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Поразбирался тут еще с параметрами приложения. В итоге, чего хотел так и не получилось. Получилось как подсказал Alex Kuznetsov вынести в отдельный конфиг файл строку соединения и ссылатся из app.config на файл со строкой соединения атрибутом configSource и это работает если программно присваивать адапрерам таблиц соединение хоть из сотни проектов решения. Но задача стоит указать в дизайнтайме. Дело в том, что в проперти гриде не отображаются соединения из app.config, а отображаются как я понял только из Settings.settings, да, я знаю, что хранится физически строка в app.config, но пока соединения не будет в Settings.settings в дизайнере его не видно, а вот как из всех Settings.settings разных проектов сослаться на одну строку соединения так и не допер. В общем граждане я в тупике, будут еще идеи? И вообще какова область видимости дизайнера? т.е. он видит только, что в Settings.settings?
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Файл параметров как ссылка в двух и более проектах
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]