Какой смысл в теге system.web / Pages / Namespaces Web.config? - PullRequest
10 голосов
/ 29 марта 2012

Независимо от того, содержит ли корневая веб-конфигурация моих машин (в Windows / Microsoft.NET / ...) элементы system.web/pages/namespaces/add, все же требуется, чтобы я включал использование операторов поверх каждого файла CodeBehind aspx.cs. Зачем? Разве он не должен компилировать и не жаловаться, что не может понять, что такое страница? В конце концов, <add namespace="System.Web" /> существует в корне web.config!

Ответы [ 3 ]

9 голосов
/ 29 марта 2012

Элемент system.web/pages/namespaces/add предназначен для .ASPX файлов, обычные .CS файлы (включая .ASPX.CS) по-прежнему требуют правильного using, поскольку перед компиляцией нет предварительной обработки источника. Таким образом, .ASPX.CS должен быть действительным файлом CS, включая все объявления using Namespace.

7 голосов
/ 29 марта 2012

Это добавляет пространства имен к файлам aspx и ascx, так что вам не нужно включать <%@ Import Namespace="MyNameSpace" %> операторов.

Из документации в MSDN :

Элемент namespaces определяет коллекцию директив импорта для использования во время предварительной компиляции сборки.Этот атрибут соответствует директиве @ Import на странице ASP.NET.Директива @ Import позволяет указывать пространства имен, которые автоматически импортируются на все страницы приложения.

Эти записи web.config никоим образом не затрагиваются.

5 голосов
/ 01 февраля 2013

Другие ответы здесь указывают, что этот параметр web.config влияет только на страницы ASPX, а не на страницы с выделенным кодом, такие как ASPX.CS. Я только что проверил это на веб-сайте ASP.NET, ориентированном на .NET 4.0, и обнаружил, что это верно для страниц C #, но не верно для страниц VB.

Добавление пространства имен в настройки web.config устранило необходимость указывать его в верхней части каждой страницы ASPX.VB.

Мне были бы интересны любые теории, почему это может быть. Я бы подумал, что это будет работать как для ASPX.CS, так и для кода ASPX.VB за файлами.

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