2013-10-03 2 views
0

Я использовал, чтобы иметь открытый класс с около 1800 общественных общих строк в нем - вроде как мои постоянные библиотеки:VB/ASP.Net: изменить статическую строку на собственный класс - как?

Public Shared ReadOnly NLS_ALREADY_IN_USE_QUERYNAME As String = "AlreadyInUseQueryName" 

Теперь я хочу, чтобы хранить немного больше информации для каждого элемента и изменить их на «As MyClass "с соответствующим конструктором, который принимает строку из моего ранее использовавшейся определения:

Public Shared ReadOnly NLS_ALREADY_IN_USE_QUERYNAME As QNLSDefinition = New QNLSDefinition("AlreadyInUseQueryName", "Deutsch", "English") 

проблема в том, что эти„объекты“не инстанцирован автоматически, хотя они являются общими. Строка, очевидно, «немедленно создается».

Любая лучшая практика для этого?

+0

Не могли бы вы вставить небольшой пример? –

+0

Привет, Карлос, я обновил вопрос, чтобы сделать его более ясным. –

ответ

1

Вы можете создать конструктор для этого класса и инстанцировании все статические переменные есть в вашем застройщик только один раз в вашем приложении:

Class Constants 

    Public Shared ReadOnly NLS_ALREADY_IN_USE_QUERYNAME As QNLSDefinition 

    'Constructor 
    Sub New() 

     NLS_ALREADY_IN_USE_QUERYNAME = New QNLSDefinition("AlreadyInUseQueryName", "Deutsch", "English") 

    End Sub 

End Class 

А потом вы идете в конструкторе приложения

Sub New() 
    InitializeComponent() 
    'Instantiate shared variables 
    Dim const as new Constants 
End Sub() 
+0

Приятно, смогу ли я получить доступ к NLS_XXX без использования const. перед этим? –

+1

Импортируйте свой класс в начале программы и не нужно использовать const: D. Импорт Константы –

+0

Muchos Gracias Carlos! :-) Не могли бы вы поместить Dim внутри Application_Start или Session_Start в приложение ASP.Net? –