C # ASP.NET - Тип или имя пространства пространства имен.

StackOverflow https://stackoverflow.com/questions/3416487

  •  26-09-2019
  •  | 
  •  

Вопрос

Я переработаю чужой код, где у них был класс помощника с возможностью большого количества кода, который не должен быть там (доступ к данным, бизнес-логику, все медленно были там медленно).

Я переместил соответствующий код в соответствующие ранее существующие классы и создал отдельный, совершенно новый класс помощника в соответствующем проекте, но все мои ссылки на этот класс просто не работают.

Вот простой вид на то, как выглядит мой класс (имена слегка изменены);

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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top