У меня есть форма, которая не открывается в конструкторе. Я использовал технику, которую я упоминаю в ответе на эти вопросы ...
Конструктор Visual Studio WinForms не создает объект
... чтобы определить, почему форма не открывается в конструкторе.
Суть в том, что событие загрузки формы пытается загрузить некоторые пользовательские бизнес-объекты, которые получают данные из базы данных. Линия, которая терпит неудачу, ...
Dim connStr As String = ConfigurationManager.ConnectionStrings (connectionStringName) .ConnectionString
... это возвращает исключение нулевой ссылки. Он не может найти мою именованную строку подключения в вызывающем контексте открытия формы в конструкторе, пока он не находится в режиме разработки.
Почему это? Строка подключения находится в app.config проекта, в котором находится форма. Все, что я могу себе представить, это то, что Designer открывается в своем собственном контексте и не использует app.config проекта winforms. Фактически, в контексте прерывания ... диспетчер конфигурации содержит две строки подключения ... ни одна из которых не находится в моих проектах app.config. Они таковы ...
? Configurationmanager.ConnectionStrings (0) .ConnectionString
"источник данных =. \ SQLEXPRESS; встроенная безопасность = SSPI; AttachDBFilename = | DataDirectory | aspnetdb.mdf; пользовательский экземпляр = true"
и
? Configurationmanager.ConnectionStrings (1) .ConnectionString
"data source =" | DataDirectory | \ aspnetdb.vdb3 ""
... Я упоминаю эти возможные подсказки. Ни одна из этих связок не является моей. Но каждый из них ссылается на двух провайдеров БД, которых я хочу поддержать в моем проекте ... sql и vistadb.
Все это говорит о том ... существует ли способ определения контекста выполнения, используемого конструктором, чтобы я мог добавить данные в app.config, чтобы он не сломался при этой ошибке. Или (лучше), есть ли способ заставить дизайнера использовать мой собственный app.config. Где находится app.config, используемый дизайнером?
Заранее спасибо за помощь.
Сет