아래 코드는 InvalidOperationException을 throw합니다. ConnectionString 속성이 초기화되지 않았습니다. 예외는 Load 메서드의 Connection.Open()을 호출하는 줄에서 throw됩니다. using 문 대신 try-finally 문을 사용하면 모든 것이 올바르게 작동합니다. 누구든지 예외를 사용하여 왜 발생하는지 설명 할 수 있습니까? 당신의 Using
문에Using Statement 및 Lazy Initialized 속성의 오류
Public Class SomeEntity
Private _Connection As SqlClient.SqlConnection
Private _ConnectionString As String
Protected ReadOnly Property Connection() As SqlClient.SqlConnection
Get
If _Connection Is Nothing Then
_Connection = New SqlClient.SqlConnection(_ConnectionString)
End If
Return _Connection
End Get
End Property
Public Sub New(ByVal connectionString As String)
_ConnectionString = connectionString
End Sub
Public Sub Load(ByVal key As Integer)
Using Connection
Connection.Open()
...
End Using
End Sub
End Class
사실, 그렇습니다. SomeEntity 클래스의 protected Connection 속성을 참조합니다. –