Добрый день.
Есть некий контрол, который получает динамические проперти из app.config, а так же есть некое winApp которое юзает данный контрол, где и как надо разместить данные проперти в этом winApp, чтобы контрол работал (конкретно строка соединения с БД )
Не очень понятен Ваш вопрос... Что значит "где и как надо разместить данные проперти в этом winApp, чтобы контрол работал", если Вы сами написали "динамические проперти из app.config"?
Здравствуйте, Аноним, Вы писали:
А>Добрый день. А>Есть некий контрол, который получает динамические проперти из app.config, а так же есть некое winApp которое юзает данный контрол, где и как надо разместить данные проперти в этом winApp, чтобы контрол работал (конкретно строка соединения с БД )
А>данное сообщение получено с www.gotdotnet.ru А>ссылка на оригинальное сообщение
Данная проблема до сих пор не решена, есть ли у кого еще предложения? За ранее всем спасибо.
Здравствуйте, Crutch, Вы писали:
C>Данная проблема до сих пор не решена, есть ли у кого еще предложения? За ранее всем спасибо.
Насколько я понял, нужно просто скопировать секцию с этими проперти из app.config в .config этого аппликейшна, не забыв скопировать и определения обработчиков секции. Если нечсно — нужен пример app.config для пояснения.
Never underestimate those behind you...
App Config
От:
Аноним
Дата:
04.02.05 21:26
Оценка:
Пример App.config:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key = "ConnectionString" value = "PathToDb" />
</appSettings>
</configuration>
Если проребилбить отдельно контрол, то файл с пропертями генериться автоматически. Но когда я использую этот контрол в другом winApp, то при добавление его на форму появляется ошибка "не найден данный ключ", добавление руками сгенерированный конфиг файл в winApp не помогает, что и где надо прописать, чтобы избавиться от этой ошибки??
В том то и дело, устанавливаю данное свойство в конфиг файле winApp, а контрол его не понимает.
<add key="sqlConnection1.ConnectionString" value="workstation id=KORAL;packet size=4096;integrated security=SSPI;data source="KORAL\SQLEXPRESS";persist security info=False;initial catalog=KladezMain" />
при добавление контрола через дизайнер на форму VS генерит ошибку, что данный ключ не найден.
Я думаю имелось ввиду то, что Вам нужно из контрола не напрямую через AppSettings читать конфиг, а создать пропертю в этом контроле, которую инициализить из приложения
Не совсем так, мне необходимо, чтобы контрол получал указанный ключ из конфиг файла приложения. Т.к. это приложение будет частью системы, настраеваемой админом посредством конфиг файлов.
Дело в том, что так и делаю, но при добавление контрола через дизайнер на форму, VS генерит ошибку, что данный ключ не найден в конфиг файле. Вот это и является точкой приткновения.
Спасибо, насколько я понял, Вы предлагаете устанавливать данное свойство из основного приложения, а не из самого контрола. Дело в том, что данный контрол не зависит от приложения и хотелось бы все настройки делать внутри него и при этом все динамические свойства для всех контролов и приложения прописывать в одном конфиг файле.
Проблема ваша в следующем.
При работе в дизайнере ваш файл конфигурации никаким боком не участвует. При попытке прочитать что-то из файла конфигурации, среда пытается читать это из файла devenv.exe.config — потому что это имя исполняемого файла текущего процесса (студии).
Из design time до файла конфигурации добраться будет трудновато.
Вариант решения такой: в design time просто не читать ничего из файла конфигурации, а делать это только в runtime.
Данная информация предоставляется на условиях «КАК ЕСТЬ», без предоставления каких-либо гарантий и прав. Используя данную информацию, вы соглашаетесь с тем, что (i) Майкрософт не несет ответственности за использование вами данной информации и (ii) вы принимаете на себя весь риск, связанный с использованием данной информации.
Можно так:
System.Configuration.ConfigXmlDocument reader = new System.Configuration.ConfigXmlDocument();
reader.Load( System.Reflection.Assembly.GetExecutingAssembly().FullName + ".config" );
Думается, что такой вариант не прокатит, так как при работе в дизайнере метод GetExecutingAssembly вернёт null.
Данная информация предоставляется на условиях «КАК ЕСТЬ», без предоставления каких-либо гарантий и прав. Используя данную информацию, вы соглашаетесь с тем, что (i) Майкрософт не несет ответственности за использование вами данной информации и (ii) вы принимаете на себя весь риск, связанный с использованием данной информации.
Спасибо.
Насколько я понял, все обращения к конфиг файлу надо выполнять в самом приложение, а не в контроле. Если это не правильно, поправте меня, Name.