2013-03-06 2 views
2

В моей нынешней ситуации (хотя мне это нужно для многих других ситуаций, похожих на), я пишу приложение, которое запрашивает базу данных.Установка переменных значений во время тестирования

Теперь, кодируя/отлаживая, я бы предпочел не постоянно постоянно переписывать свои учетные данные БД. Однако, если пользователь запускает исполняемый файл, я бы хотел, чтобы они вводили свои учетные данные.

Я посмотрел в директивы препроцессора, такие как:

#If DEBUG Then 
    Public Property DB_UserName As String = "MyUserName" 
    Public Property DB_Password As String = "MyPassword" 
#Else 
    Public Property DB_UserName As String = "" 
    Public Property DB_Password As String = "" 
#End If 

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

Что я ищу/интересно, существует ли это способ установки переменных/кода записи, которые будут обрабатываться во время кодирования/в среде Visual Studio, но не будут обрабатываться, если исполняемый файл выполняется без изменения какого-либо свойства проекта.

Существует ли такая вещь? Как мне это реализовать?

Спасибо!

+0

Как просто сохранить значения в файле конфигурации, а затем просто не отправлять этот файл или настройки клиентам? –

+1

Почему бы вам не использовать директивы PreProcessor? Это имеет смысл иметь его в режиме отладки при тестировании, а затем изменить его на Release, когда вы собираетесь скомпилировать исполняемый файл. Таким образом, вы можете даже иметь разные файлы .config для изменения настроек. –

ответ

1

Если вы действительно хотите, чтобы жестко закодировать значения, вы можете проверить, если вы работаете в среде разработки с помощью метода, как это:

Private Function processStartedByVisualStudioDebugger() As Boolean 
    Dim result As Boolean = False 
    Try 
     If AppDomain.CurrentDomain.DomainManager.ToString().IndexOf("vshost", StringComparison.OrdinalIgnoreCase) >= 0 Then 
      result = True 
     End If 
    Catch 
    End Try 
    Return result 
End Function 

Однако, я думаю, просто хранящее значение файл конфигурации имеет больше смысла.

+1

Спасибо @Steven - Отвечает на вопрос И дает мне обычно предпочтительное решение. Как всегда, ты потрясающий !!! –

+1

... Я знаю, что это может быть плохая практика, но я ** ЛЮБЛЮ ** ваше решение, @Steven - ТОЧНО, что я хотел! - Благодаря!!! –

1

Вы можете использовать Settings.

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

+0

Спасибо, @Jamby - Пойдемте в это больше. Однако решение Стивена дало мне то, что я искал. –

Смежные вопросы