SqlConnection в контейнере IO C? - PullRequest
0 голосов
/ 02 марта 2020

Я поддерживаю какой-то устаревший код. Один из запахов, которые я пытаюсь исправить, - это использование одного 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...