У меня есть C# WebApp, который мы делаем для клиента. У меня есть два класса в проекте, определенной (в отдельных файлах), как таковой ...Класс не может найти другой класс в том же пространстве имен
Общая библиотека утилиты:
namespace Client.WebApp {
public static class General {
public static MyDbClass GetDB() {
//<creates and returns MyDbClass here>
}
}
}
PageBase класс:
namespace Client.WebApp {
public class PageBase : System.Web.UI.Page {
protected MyDbClass dbo { get; set; }
public PageBase() {
dbo = General.GetDB();
}
}
}
Когда я пытаюсь скомпилировать, я получаю ошибку от линии dbo = General.GetDB();
:
The name 'General' does not exist in the current context Client.WebApp.
- Я проверил дважды пространство имен, указанное в обоих файлах.
- Я попытался добавить пространство имен верхнего уровня
Client.WebApp
в качестве директивы using в файле базы данных. - Я попытался полностью квалифицировать имя как в
dbo = Client.WebApp.General.GetDB();
Ничто не помогло, и он настаивает на том, что мой General
класс не существует. Забавно, что в то время как сборка попадает в эту ошибку и останавливается, редактор кода не видит эту ошибку, и оператор не получает краснеть-поджаркой.
Проект таргетирования v.4.5.2, и я работаю в VS 2015.
Являются ли оба класса в одной сборке? –
Избегайте использования 'My'. Он будет конфликтовать с встроенным пространством имен 'My' для тех, кто использует VB, которые могут захотеть использовать вашу сборку. –
Да, они оба находятся в основном проекте WebApp, а не во внешних проектах DLL. Пространство имен является всего лишь примером. Я изменил его имя, потому что настройка пространства имен кем бы ни создала проект, включает имя клиента. Я изменил код примера, чтобы удалить эту двусмысленность. – eidylon