Я поддерживаю какой-то устаревший код. Один из запахов, которые я пытаюсь исправить, - это использование одного SqlConnection, открытого в Форме 1, который передается всем дочерним формам для доступа к данным.
По мере того, как я выполняю и обновляю вещи, устранение отсутствия единственной ответственности (имеет обработчик событий кнопки classi c, который обрабатывает все данные и доступ к приложениям, а также логи приложения c et c). Одна из вещей, которые я представляю, - это использование IO C (microsoft.extensions.dependencyinjection
) для совместного использования как можно большего количества кода между основным веб-приложением. net и приложением winforms. net 4.6.1, включая IO C настройка контейнера, мы работаем над некоторыми обновлениями, а затем портируем их в Интернет)
Я с ума сошел, если поместил объект SQLConnection в контейнер IO C в качестве промежуточного шага, чтобы позволить мне переместить мой Form1
получить все экземпляры форм из константы IO C, позволяющей дочерним формам изменять конструктор любыми необходимыми службами, не беспокоясь о коде вне их класса?
Добавление некоторого кода: это пример конструктора из форм. Все переменные относятся к уровню класса и обрабатываются для устранения недостатка SOLID методов кодирования.
Public Sub New(ByVal conn1 As SqlConnection, ByVal UserID As String)
InitializeComponent()
SQLConn1 = conn1
MyUserID = UserID
SqlCmd.Connection = SQLConn1
DAPL = New SqlDataAdapter(SqlCmd)
End Sub
Private Sub LoadStuff()
SomcClassLevelArray = Nothing
If Form1.SomeBool Then
SqlCmd.CommandText = "Query"
Else
SqlCmd.CommandText = "Query with sql injection vulnerability"
End If
SQLRdr = SqlCmd.ExecuteReader()
SomeComboBox.Items.Clear()
While SQLRdr.Read
If SomcClassLevelArray Is Nothing Then ReDim SomcClassLevelArray (0) Else ReDim Preserve SomcClassLevelArray (1 + UBound(SomcClassLevelArray ))
With SomcClassLevelArray (UBound(SomcClassLevelArray ))
.Prop1 = SQLRdr.Item("Prop1")
.Prop2 = SQLRdr.Item("Prop2")
SomeComboBox.Items.Add(.Prop1)
End With
End While
SomeComboBox.SelectedIndex = -1
SQLRdr.Close()
End Sub