Общие переменные и вопросы использования DLL в Visual Basic. Сфера путаницы - PullRequest
0 голосов
/ 20 октября 2011

Я пытаюсь разбить некоторый ранее созданный код в DLL. Это простая система регистрации.

Есть несколько вещей, которыми нужно поделиться с главной формой в проекте, поэтому я настроил их как общую переменную, но я не часто использую общие вещи, и я боюсь, что это вызовет конфликты переменных в отношении объем. Я решил написать здесь об этом и посмотреть, сможет ли кто-нибудь объяснить, что я не до конца понимаю.

Поскольку это регистратор, он будет использоваться в нескольких местах. Другие библиотеки DLL, для которых требуется ведение журнала, могут ссылаться на него через экземпляр объекта и ссылку на проект. Моя основная форма также будет содержать экземпляр объекта и ссылку на библиотеку логгера.

Поскольку одним из моих свойств является строка подключения, и она является общей, означает ли это, что экземпляр моего класса регистратора внутри DLL будет иметь те же общие значения, что и экземпляр в моей основной форме пользовательского интерфейса? Или тот факт, что экземпляр находится внутри DLL, обеспечивает необходимую мне область видимости? Я надеюсь, что это делает ..

В основном я волнуюсь, что мне может понадобиться войти с использованием двух разных строк подключения в будущем.

(Надеюсь, мой вопрос имеет смысл. Если это не так, оставьте комментарии, и я постараюсь уточнить.)

1 Ответ

0 голосов
/ 20 октября 2011

Нет, тот факт, что экземпляр находится в DLL, не обеспечивает необходимой границы области действия. Если бы класс или члены в DLL были объявлены static, они были бы общими, и вы можете столкнуться с проблемами. Так что просто не объявляйте их static и обязательно создайте new экземпляров объекта (ов), когда вы их потребляете, и у вас должно быть все в порядке.

...