У меня есть проект 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 не разрешен в коде позади...
Я действительно буду признателен за любую помощь в этом. Благодарю.
Щелкните правой кнопкой мыши свой класс Class1.cs в папке App_Code и проверьте его свойства. Для сборки необходимо установить компиляцию. (Иногда для него установлено значение Content)
Я столкнулся с подобной проблемой, однако, это был другой "Проект", который жаловался. В моем случае я узнал, что есть некоторые.cs файлы, которые были включены как "ссылка", и я не включил свой новый.cs файл в качестве "ссылки" в проект, который жаловался. Надеюсь, это поможет кому-то, кто наткнется на это. Итак, совет: когда ошибка указана в "списке ошибок", также проверьте столбец "Проект".
Просто потому, что 2 класса используют одно и то же пространство имен, это не значит, что они автоматически видны друг другу, если они находятся в разных сборках/проектах.
Единственный способ увидеть, что у вас возникла эта проблема, - это если Class1
находится в сборке/проекте "Foo" (составленное имя), а класс pdp
находится в сборке/проекте "Бар" (другое составленное имя).
Чтобы решить эту проблему, вам нужно добавить ссылку на сборку, содержащую Class1
на сборку pdp
.
Class1
, на другую?