构造函数中的连接字符串
Connection String in Constructor
现在我可以通过执行以下操作在每个方法中调用它来在我的 class 中建立连接。
Dim sConnectionString As String = ConfigurationManager.AppSettings("Blah")
'Establish connection with db
Dim cnSqlConnection1 As New SqlConnection(sConnectionString)
唯一的问题是我必须在每个方法中调用它。有人告诉我,最好为 class 创建一个构造函数,并将它使用的连接字符串传递给构造函数。
这是我的尝试,但似乎无法弄清楚,因为我仍然无法在方法中达到它。
Public Sub New(ByVal sConnectionString As String)
sConnectionString = ConfigurationManager.AppSettings("Blah")
End Sub
最好的方法是什么?提前致谢。
您应该将传递的连接字符串存储在所有 class 方法中可用的全局变量中
Public Clas MyClass
Private String gs_conString
Public Sub New(ByVal sConnectionString As String)
gs_conString = sConnectionString
End Sub
Public Sub AMethod()
'Establish connection with db
Dim cnSqlConnection1 As New SqlConnection(gs_conString)
.....
End Sub
.....
End Class
当然这意味着每次创建此实例时 class 都需要将连接字符串传递给构造函数
Dim cl As MyClass = new MyClass(ConfigurationManager.AppSettings("Blah"))
所以每次创建实例时最好使用构造函数自动提取连接字符串
Private String gs_conString
Public Sub New()
gs_conString = ConfigurationManager.AppSettings("Blah")
End Sub
选择第一个选项,将连接字符串放入构造函数中。您不希望 class 直接依赖于 <appSettings>
。
您的 class 的界面应该指出它有哪些依赖项。当您将连接字符串放入构造函数时,class 表示,"Hey, I need a connection string!"
如果 class 调用 <appSettings>
,则 class 的用户无法知道 class 期望在那里找到连接字符串,除非他们打开你的代码并阅读它。如果他们不知道连接字符串属于那里,那么他们将得到一个没有任何解释的空引用异常。
这就提出了一个问题 - 无论 class 创建了 你的 class, 它 从哪里获得连接字符串以便它可以将它传递给构造函数?依赖注入就是答案。它使您能够以这种方式编写 classes 然后 "wire it up" 以便将正确的参数传递给您的构造函数。
现在我可以通过执行以下操作在每个方法中调用它来在我的 class 中建立连接。
Dim sConnectionString As String = ConfigurationManager.AppSettings("Blah")
'Establish connection with db
Dim cnSqlConnection1 As New SqlConnection(sConnectionString)
唯一的问题是我必须在每个方法中调用它。有人告诉我,最好为 class 创建一个构造函数,并将它使用的连接字符串传递给构造函数。
这是我的尝试,但似乎无法弄清楚,因为我仍然无法在方法中达到它。
Public Sub New(ByVal sConnectionString As String)
sConnectionString = ConfigurationManager.AppSettings("Blah")
End Sub
最好的方法是什么?提前致谢。
您应该将传递的连接字符串存储在所有 class 方法中可用的全局变量中
Public Clas MyClass
Private String gs_conString
Public Sub New(ByVal sConnectionString As String)
gs_conString = sConnectionString
End Sub
Public Sub AMethod()
'Establish connection with db
Dim cnSqlConnection1 As New SqlConnection(gs_conString)
.....
End Sub
.....
End Class
当然这意味着每次创建此实例时 class 都需要将连接字符串传递给构造函数
Dim cl As MyClass = new MyClass(ConfigurationManager.AppSettings("Blah"))
所以每次创建实例时最好使用构造函数自动提取连接字符串
Private String gs_conString
Public Sub New()
gs_conString = ConfigurationManager.AppSettings("Blah")
End Sub
选择第一个选项,将连接字符串放入构造函数中。您不希望 class 直接依赖于 <appSettings>
。
您的 class 的界面应该指出它有哪些依赖项。当您将连接字符串放入构造函数时,class 表示,"Hey, I need a connection string!"
如果 class 调用 <appSettings>
,则 class 的用户无法知道 class 期望在那里找到连接字符串,除非他们打开你的代码并阅读它。如果他们不知道连接字符串属于那里,那么他们将得到一个没有任何解释的空引用异常。
这就提出了一个问题 - 无论 class 创建了 你的 class, 它 从哪里获得连接字符串以便它可以将它传递给构造函数?依赖注入就是答案。它使您能够以这种方式编写 classes 然后 "wire it up" 以便将正确的参数传递给您的构造函数。