Пространство имен ASP.NET

Ничто просто еще не может найти простым и изящным, но у меня есть одна идея: Если Вы знаете тип свойства, Вы хотите установить, можно записать собственное default(T). Существует два случая - T, тип значения, и T ссылочный тип. Вы видите это путем проверки T.IsValueType. Если T ссылочный тип, то можно просто установить его на null. Если T будет тип значения, то он будет иметь конструктора без параметров по умолчанию, которого можно вызвать для получения "пустого" значения.

6
задан user366312 9 August 2009 в 15:23
поделиться

2 ответа

Веб-сайты не имеют / не поддерживают пространство имен. Веб-приложения делают.

Чтобы ответить на вопрос, поскольку создается новый «веб-сайт», пространство имен не играет роли. Что касается того, как получить доступ к другим классам страниц WebForm со страницы Webform, я не понял причин для этого. И я не думаю, что это выполнимо (поправьте меня, если я ошибаюсь).

В любом случае есть способы обойти. Если у вас есть многоразовая бизнес-логика / пользовательский интерфейс / другая логика, используемая в классе одной веб-формы, просто переместите эти методы, чтобы указать файл XXX.cs в App_Code. Пространство имен не требуется, и его можно использовать во всех классах веб-форм.

9
ответ дан 8 December 2019 в 18:39
поделиться

Посмотрите код программной части (Default.aspx.cs в вашем случае) рассматриваемой страницы. Там вы увидите свое пространство имен. Aspx - это дополнение к классу в коде программной части, которое объединено с помощью объявления частичного класса.

Я только что создал новый проект веб-приложения. Код программной части выглядит так:

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

namespace WebApplication1
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }
    }
}

Итак, вы видите пространство имен «WebApplication1». Вы это видите, верно?

ДОБАВЛЕНО: Я снова создал проект веб-сайта, чтобы проверить это. Хорошо, подтверждаю, я не вижу там объявлений пространств имен. Немного погуглив, я нашел этот пост:

asp.net - Веб-сайт против веб-приложения (ссылка исправлена)

Новая модель компиляции отбрасывала сам файл проекта Visual Studio, взяла asp.net вернуться к концепции "компиляции на лету", все, кроме , устранили использование пространств имен на веб-сайте и радикально изменили способ организации шаблона пользовательского интерфейса и связанного с ним кода программной части.

Судя по всему, он просто объединяет все классы вместе, как классы страниц, так и классы пользовательской логики вы обычно помещаете в папку App_Code . Средство просмотра классов также не отображает объекты страницы, даже если я помещаю их в свои пользовательские пространства имен, но он делает это правильно вместе с пространствами имен для объявлений в папке App_Code . Полагаю, ребята из команды VS не хотели, чтобы вы заботились о пространствах имен для классов страниц.

как классы страниц, так и классы пользовательской логики вы обычно помещаете в папку App_Code . Средство просмотра классов также не отображает объекты страницы, даже если я помещаю их в свои пользовательские пространства имен, но он делает это правильно вместе с пространствами имен для объявлений в папке App_Code . Полагаю, ребята из команды VS не хотели, чтобы вы заботились о пространствах имен для классов страниц.

как классы страниц, так и классы пользовательской логики вы обычно помещаете в папку App_Code . Средство просмотра классов также не отображает объекты страницы, даже если я помещаю их в свои пользовательские пространства имен, но он делает это правильно вместе с пространствами имен для объявлений в папке App_Code . Полагаю, ребята из команды VS не хотели, чтобы вы заботились о пространствах имен для классов страниц.

2
ответ дан 8 December 2019 в 18:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: