несколько файлов CS для нескольких файлов asp.net - PullRequest
0 голосов
/ 23 октября 2011

У меня есть некомпилированный сайт с использованием C #.У меня есть 6 файлов, которые используют несколько функций в случайных классах.Я хотел бы переместить их в более логичное разделение, но я не вижу, как ссылаться на классы в другом файле CS.

В идеале я бы разделил их на файлы cs на логические части, такие как класс магазинной тележки в одном файле, функции рутинной операции в другом и т. Д. И все 6 файлов могут ссылаться на любой из отдельных файлов cs.

Возможно ли это, даже если мы их не скомпилируем?

update:

Хорошо, мой код может выглядеть следующим образом, а синтаксис ShoppingCart.cart неверен, ноэто пример того, как я хотел бы, чтобы это работало:

default.aspx.cs:

using ShoppingCart;

public partial class DefaultPage : System.Web.UI.Page
{
  protected void page_load()
  {
    ShoppingCart.cart.CheckCart("newguy");
  }

shoppingcart.cs:

namespace ShoppingCart
{
 public partial class cart : System.Web.UI.Page
  {
    public string CheckCart(string cartname)
    {
      return "test";
    }

и т. д.

Ответы [ 3 ]

2 голосов
/ 24 октября 2011

Возможно ли это, даже если мы их не скомпилируем?

Этот вопрос не имеет смысла.

Файл кода ссылается на другой через комбинациюиз namespace и директивы using.

Ваш пример показывает это.Тем не менее, это совершенно неверный код (не будет компилироваться), потому что у вас нет экземпляра класса cart для ссылки.Он никогда не создавался.

Это означает, что вам нужно пометить метод CheckCart как статический, превратить класс корзины в одноэлементный или сделать DefaultPage сходящим с корзины.

Независимо от ShoppingCartПространство имен должно быть скомпилировано, что означает, что эти 6 файлов, о которых вы говорите, должны быть сгруппированы в сборку ИЛИ стать частью вашего основного проекта для запуска кода.

Проекты веб-сайтов делают некоторыеэто полностью за кулисами, если вы просто перетащите код в папку app_code.Тем не менее, WSP делают ряд других неожиданных вещей, которые, если вы поработали с ними в течение какого-то времени, вы обнаружите, что это полный мусор.

Итак, основываясь на комментарии Джона, преобразуйте его впроект веб-приложения.Для дополнительного кода у вас есть возможность создать отдельный сборочный проект и добавить его туда или просто оставить в подпапках основного проекта.

1 голос
/ 23 октября 2011

если вам нужно отделить бизнес-логику от пользовательского интерфейса, один из вариантов - создать отдельную библиотеку классов для бизнес-логики и вызвать эти методы из уровня пользовательского интерфейса. Следующая ссылка поможет вам

Создание проекта веб-приложения с библиотекой классов

Или вы можете оставить их в одном проекте, но убедитесь, что вы используете одно и то же пространство имен для всех классов.

1 голос
/ 23 октября 2011

Храните их в одном и том же пространстве имен. Это позволит вам вызывать другие классы из других классов ......

И ваши cs-файлы do будут скомпилированы. Это просто происходит под капотом;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...