У меня есть открытый класс с общедоступным общим словарем в vb.net. Конструктор, похоже, не работает. У меня есть точка останова в конструкторе, который не сломается. Также, когда я делаю обновление базы данных, новые значения не отображаются в словаре.Как получить конструктор для открытого класса для запуска
Public Class SkywalkerPolicy
Public Shared CustomPolicies As Dictionary(Of String, String)
Shared Sub New()
CustomPolicies = New Dictionary(Of String, String)
Dim bvin As String = String.Empty
Dim title As String = String.Empty
Dim poldescr As String = String.Empty
Dim dtResult As New DataTable("Result")
dtResult.Locale = System.Globalization.CultureInfo.InvariantCulture
Dim request As New DataRequest
request.Command = "sky_PolicyDictionary_s"
request.CommandType = CommandType.StoredProcedure
request.Transactional = False
Dim result As DataSet
result = SqlDataHelper.ExecuteDataSet(request)
If Not result Is Nothing Then
If result.Tables.Count() > 0 Then
dtResult = result.Tables(0)
For Each row In dtResult.AsEnumerable
bvin = row.Item(1)
title = row.Item(0)
poldescr = row.Item(2)
If CustomPolicies.ContainsKey(title) Then
CustomPolicies(title) += poldescr
Else
CustomPolicies.Add(title, poldescr)
End If
Next
End If
End If
End Sub
End Class
Когда я обращаюсь к словарю, любые изменения, внесенные мной в данные, не отображаются.
Dim pol As String = SkywalkerPolicy.CustomPolicies("Orders and Shipping Details")
Есть ли у кого-нибудь какие-либо предложения относительно того, как я могу заставить конструктор работать?
Или должен ли я иметь дополнительный Sub, который дублирует инициализацию словаря, прежде чем использовать его?
Благодаря
Вы инстанцировании класс как объект где-нибудь ... например. Частная MyPolicy = Новая SkywalkerPolicy? –
Тогда Новый метод должен работать –
я просто попытался, что, как \t \t \t Dim MYPOLICY = Новый SkywalkerPolicy Dim Pol As String = MyPolicy.CustomPolicies («Заказы и детали судоходства») я получаю Acces разделяемой член, постоянный член, член перечисления или вложенный тип через экземпляр; квалификационное выражение не будет оцениваться. – Roger