【问题标题】:Setting Variable Values During Testing在测试期间设置变量值
【发布时间】:2013-03-06 16:03:15
【问题描述】:

我目前的情况(尽管我在许多其他类似的情况下需要这个)是我正在编写一个查询数据库的应用程序。

现在,在编码/调试时,我宁愿不必不断地重新输入我的数据库凭据。但是,如果用户运行可执行文件,我希望他们必须输入他们的凭据。

我研究了预处理器指令,例如:

#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 环境中处理的代码的方法,但如果无需更改任何项目属性即可运行可执行文件。

这样的事情存在吗?我将如何实现它?

谢谢!

【问题讨论】:

  • 将值存储在配置文件中,然后不将该文件或设置发送给客户呢?
  • 您为什么不想使用预处理器指令?在进行测试时将其置于 Debug 模式,然后在要编译可执行文件时将其更改为 Release,这是最有意义的。这样您甚至可以使用不同的.config 文件来更改设置。

标签: c# .net vb.net visual-studio-2010


【解决方案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

但是,我认为将值简单地存储在配置文件中更有意义。

【讨论】:

  • 感谢@Steven - 回答问题并为我提供通常首选的解决方案。一如既往,你太棒了!!!
  • ...我知道这可能是不好的做法,但我喜欢您的解决方案,@Steven - 完全符合我的要求! - 谢谢!!!
【解决方案2】:

您可以使用Settings

我认为这会比直接存储在代码中更好。 只需使用不同的设置文件或什至不使用它来发布您的可执行文件。

【讨论】:

  • 谢谢,@Jamby - 会进一步调查。不过,史蒂文的解决方案正是我想要的。
猜你喜欢
  • 2017-11-13
  • 2021-10-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-11
  • 2022-11-20
  • 1970-01-01
  • 2014-09-27
相关资源
最近更新 更多