C # ASP.NET - Тип или имя пространства пространства имен.
Вопрос
Я переработаю чужой код, где у них был класс помощника с возможностью большого количества кода, который не должен быть там (доступ к данным, бизнес-логику, все медленно были там медленно).
Я переместил соответствующий код в соответствующие ранее существующие классы и создал отдельный, совершенно новый класс помощника в соответствующем проекте, но все мои ссылки на этот класс просто не работают.
Вот простой вид на то, как выглядит мой класс (имена слегка изменены);
namespace Company.Web.Application.Reporting
{
public class ReportHelper
{
here I have a bunch of methods
}
}
И вот как оно ссылается;
using Company.Web.Application.Reporting;
namespace Company.Web.Application.App.Reports
{
public partial class PlansReports : PageBase
{
//This is the problem part
private ReportHelper Helper = new ReportHelper();
heaps of other code with no problems here...
}
}
Моя проблема заключается в том, что я получаю следующую ошибку, везде, что я пытаюсь получить доступ к моему новому помощнику.
Тип или имя пространства имен «ReportHelper» не найдутся (вы отсутствуете на директиру с использованием или ссылкой на сборку?)
Все мои с использованием утверждений есть, у меня есть соответствующие ссылки в каждом соответствующем проекте, но это все еще сохраняется. На данный момент я полностью застрял, мне просто нужно получить этот вопрос со ссылкой на сортировку, поэтому я могу гарантировать, что все мои помощники работают правильно.
Любая помощь значительно ценится,
Патенты
Решение
Хорошо, я нашел проблему (на самом деле сделал коллега)
Этот оригинальный класс помощника был содержался в папке App_Code моего главного проекта, который, как я только что узнал, обрабатывает по-разному составляющим все остальные папки в проекте. Код здесь скомпилирован во время выполнения, а не во время сборки. Когда я создал свои новые классы, они были в папке App_Code, потому что я использовал Rush Code для извлечения класса в новый файл, который сохранил его в том же месте ... после чего я переместил их в их «разумное» местоположение. К сожалению, они все еще имели действие построения «контента», унаследованного от их предыдущего присутствия в папке App_Code. Итак, в файле нового класса я просто изменил свои построение действий на «Compile», и теперь все хорошо с миром.
Ваше здоровье,
Патенты
Другие советы
Ваш ReportHelper
В отдельном проекте или DLL? Если так, вы добавили этот проект / DLL в качестве ссылки? (В вашем решении проводнику по ссылкам, проверьте ваш проект / DLL.
Вы построили Company.Web.Application.Reporting
Так что тип будет известен? Это было бы моей идеей наряду с обеспечением того, что зависимости настроены должным образом.
Похоже, вы знаете, что вы делаете, и все выглядит правильно, так что это должно быть что-то простое. Вы пытаетесь получить доступ к изменениям в ReportHelper, который не был скомпилирован в DLL? Я бы попробовал восстановить ссылочную ассамблею; Каждый раз, когда вы вносите изменения в эту сборку, он должен быть восстановлен.
Также убедитесь, что вы добавляете правильную сборку (например, Debug vs. Release) к вашему проекту. Неважно, какой тип, но вы не хотите компилировать новые изменения в Delbug DLL и продолжайте добавлять старую версию DLL Release.