Общедоступный статический класс в том же пространстве имен, что и веб-форма, не может быть разрешен

1

У меня есть проект Webform MVP и есть некоторые методы расширения, объявленные в классе в папке App_Code, которые не разрешены в моем коде webform позади. как Webform, так и Static Class находятся в одном пространстве имен, но что-то кажется неработоспособным...

Я сделал быстрый образец, чтобы показать вам проблему...

Класс в App_Code:

namespace ecommerce.mvp
{
    public static class Class1
    {
        public static void Test1()
        {

        }

    }
}

Код:

using System;
using System.Collections.Generic;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;


namespace ecommerce.mvp
{
    public partial class pdp : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            Class1.Test1(); // <--- This symbol can't be resolved

Обратите внимание, что оба они находятся в одном пространстве имен... но по какой-то причине Class1 не разрешен в коде позади...

Я действительно буду признателен за любую помощь в этом. Благодарю.

  • 1
    Они в одной сборке? Если нет, ссылается ли сборка, содержащая Class1 , на другую?
  • 0
    (Визуальный студийный проект - это, как правило, сборка, если вам интересно)
Показать ещё 1 комментарий
Теги:
scope
namespaces
webforms

3 ответа

3
Лучший ответ

Щелкните правой кнопкой мыши свой класс Class1.cs в папке App_Code и проверьте его свойства. Для сборки необходимо установить компиляцию. (Иногда для него установлено значение Content)

  • 0
    Большой! Работало отлично! Огромное спасибо! не следует устанавливать для файлов VS .cs .vb значение «Компиляция» автоматически, когда вы копируете его из другого проекта или добавляете с нуля ???
  • 0
    По умолчанию классы App_Code недоступны или недоступны, вам нужно устанавливать Build Action каждый раз, когда вы добавляете новый класс в папку App_Code.
Показать ещё 2 комментария
0

Я столкнулся с подобной проблемой, однако, это был другой "Проект", который жаловался. В моем случае я узнал, что есть некоторые.cs файлы, которые были включены как "ссылка", и я не включил свой новый.cs файл в качестве "ссылки" в проект, который жаловался. Надеюсь, это поможет кому-то, кто наткнется на это. Итак, совет: когда ошибка указана в "списке ошибок", также проверьте столбец "Проект".

0

Просто потому, что 2 класса используют одно и то же пространство имен, это не значит, что они автоматически видны друг другу, если они находятся в разных сборках/проектах.

Единственный способ увидеть, что у вас возникла эта проблема, - это если Class1 находится в сборке/проекте "Foo" (составленное имя), а класс pdp находится в сборке/проекте "Бар" (другое составленное имя).

Чтобы решить эту проблему, вам нужно добавить ссылку на сборку, содержащую Class1 на сборку pdp.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню