Невозможно получить доступ к ссылочным константам проекта

У меня проблема с использованием модуля для нескольких проектов в одном решении (обычный проект и тестовый проект для модульных тестов). Я пытаюсь следовать примеру кода с http://msdn.microsoft.com/en-us/library/ms182532(v=vs.110).aspx (но использую VB.NET вместо C#).

Итак, у меня есть 2 проекта, ZBank и ZBankTests. ZBankTests имеет ссылку на ZBank. ZBank имеет класс clsAccount (пространство имен BankAccount) и модуль modConstants (пространство имен BankConstants). clsAccount импортирует ZBank.BankConstants и может использовать его постоянные переменные.

ZBankTests имеет класс clsAccountTests (пространство имен ZBank.BankAccount.Tests), который импортирует ZBank.BankAccount и ZBank.BankConstants. Я могу использовать класс BankAccount хорошо, но это ошибки:

"'DebitAmountExceedsBalanceMessage' is not declared. It may be inaccessible due to its protection level."

Я также скомпилировал модуль в DLL, но после добавления ссылки на него ни один из проектов не может импортировать его или использовать его переменные (пробовал после прочтения этого: использование одних и тех же модулей в нескольких проектах).

Код для модуля:

Namespace BankConstants

    Module modConstants

        Public DebitAmountExceedsBalanceMessage As String = "Debit amount exceeds balance"
        Public DebitAmountLessThanZeroMessage As String = "Debit amount less than zero"

    End Module

End Namespace

1 ответ

Решение

Module уровень доступа Friend по умолчанию. Вы должны явно объявить это как Public если вы хотите использовать его за пределами границ проекта.

Public Module modConstants
    ' your constants
End Module

Увидеть Module документация для получения дополнительной информации.

Другие вопросы по тегам