Разница между атрибутами environment include и environment names

#c# #asp.net #.net #asp.net-core

Вопрос:

В чем разница между

 <environment include="...">...
 

и

 <environment names="...">...
 

Официальная документация вообще не помогает их различать (для меня).:

Помощник по тегам среды в ASP.NET Сердечник

имена

… Если какое-либо из предоставленных имен среды соответствует текущей среде, отображается вложенное содержимое … Значения среды сравниваются с текущим значением, возвращаемым IWebHostEnvironment.Имя среды

Содержимое отображается, если среда размещения является промежуточной или производственной

 <environment names="Staging,Production">
    <strong>IWebHostEnvironment.EnvironmentName is Staging or Production</strong>
</environment>
 

включать

Свойство include демонстрирует поведение, аналогичное поведению атрибута names. Среда, указанная в значении атрибута include, должна соответствовать среде размещения приложения (IWebHostEnvironment.Имя среды) для отображения содержимого тега.

 <environment include="Staging,Production">
    <strong>IWebHostEnvironment.EnvironmentName is Staging or Production</strong>
</environment>
 

Даже в их фрагментах кода используется идентичное самоописание «Среда веб-хостинга.Имя среды-это Постановка или производство».

В чем разница между этими двумя?

Ответ №1:

Похоже, что «имена» — это более старый способ, а «включить/исключить» — более новый способ.

Новый exclude атрибут в EnvironmentTagHelper позволяет легко указать средеtaghelper для визуализации во всех средах, КРОМЕ указанных вами. Также есть новый include атрибут, который ведет себя так же, как names и в ASP.NET Ядро 1.

Изучение помощника по тегам среды исключает и включает атрибуты в ASP.NET Ядро 2

Я предполагаю, что Microsoft сохранила старое names для обратной совместимости. Я понимаю, почему в документации это не отражено.

Основываясь на моем опыте, официальной документации и приведенной выше статье, нет никакой функциональной разницы между name и include . Это имя include просто лучше сочетается с exclude .