Nano Hash - криптовалюты, майнинг, программирование

Веб-формы ASP.NET: используйте один и тот же tagPrefix для веб-элементов управления из разных пространств имен.

У меня есть зарегистрировал два пространства имен в Web.config следующим образом:

<add tagPrefix="a" assembly="WebApplication1" namespace="WebFormsApplication1.Controls1" />
<add tagPrefix="a" assembly="WebApplication1" namespace="WebFormsApplication1.Controls2" />

Я использую их вот так на странице .aspx:

<a:WebCustomControl1 ID="Control1" runat="server"></a:WebCustomControl1>
<a:WebCustomControl2 ID="Control2" runat="server"></a:WebCustomControl2>

Вот (сломанный) файл .designer.cs, который VS создает для этой страницы (обратите внимание, что он использует пространство имен Controls2 для обоих элементов управления, хотя Control1 находится в пространстве имен Controls1):

protected global::WebFormsApplication1.Controls2.WebCustomControl1 Control1;
protected global::WebFormsApplication1.Controls2.WebCustomControl2 Control2;

Похоже, что второй <add в Web.config перезаписывает первый. Я хочу, чтобы он добавлялся, а не перезаписывался, возможно ли это?


Думаю, есть и другие варианты:

  1. Поместите все в одно пространство имен
  2. Используйте уникальный tagPrefix для каждого пространства имен

Но они не крутые, так как у нас здесь около сотни элементов управления.

Обратите внимание, что если зарегистрировать пространства имен в самом aspx, все будет работать нормально:

<%@ Register TagPrefix="a" Namespace="WebFormsApplication1.Controls2" Assembly="WebFormsApplication1" %>
<%@ Register TagPrefix="a" Namespace="WebFormsApplication1.Controls" Assembly="WebFormsApplication1" %>

Так что это похоже на какую-то ошибку в Web.config синтаксическом анализе.

(Я на VS 2017, но мне сказали, что это произошло по крайней мере с VS 2010).


  • Не. Это может привести к непредсказуемым результатам из-за затенения пространства имен. 25.04.2020

Ответы:


1

В тех случаях, когда мне это было нужно в прошлом, я удалял файлы конструктора и вручную объявлял все элементы управления в коде позади.

Также может быть способ (но я точно не помню, как именно) указать конструктору, чтобы он не создавал эти конкретные элементы управления в файле конструктора. Затем вы вручную добавляете их в код позади.

10.07.2017
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..