Cuál es la diferencia entre
<environment include="...">...y
<environment names="...">...La documentación oficial no ayuda a distinguirlos en absoluto (para mí):
Ayudante de etiquetas de entorno en ASP.NET Core
nombres
... Si alguno de los nombres de entorno proporcionados coincide con el entorno actual, se representa el contenido adjunto ... Los valores del entorno se comparan con el valor actual devuelto por IWebHostEnvironment.EnvironmentName
El contenido se representa si el entorno de hospedaje es Staging o Production
<environment names="Staging,Production"> <strong>IWebHostEnvironment.EnvironmentName is Staging or Production</strong> </environment>
incluir
La propiedad include exhibe un comportamiento similar al atributo de nombres. Un entorno enumerado en el valor del atributo de inclusión debe coincidir con el entorno de hospedaje de la aplicación (IWebHostEnvironment.EnvironmentName) para representar el contenido de la etiqueta.
<environment include="Staging,Production"> <strong>IWebHostEnvironment.EnvironmentName is Staging or Production</strong> </environment>
Incluso sus fragmentos de código usan la autodescripción idéntica "IWebHostEnvironment.EnvironmentName is Staging or Production".
¿Cuál es la diferencia entre los dos?
Parece que "nombres" es la forma más antigua, e "incluir/excluir" es la forma más nueva.
Un nuevo atributo de
excludeenEnvironmentTagHelperle permite decirle fácilmente a EnvironmentTagHelper que represente en todos los entornos EXCEPTO en los que usted especifique. También hay un nuevo atributo deincludeque se comporta igual que losnamesen ASP.NET Core 1.Exploración de los atributos de exclusión e inclusión de Environment Tag Helper en ASP.NET Core 2
Supongo que Microsoft mantuvo los names antiguos por compatibilidad con versiones anteriores. IDK por qué la documentación no refleja eso.
Según mi experiencia, la documentación oficial y el artículo anterior, no hay ninguna diferencia funcional entre name e include . El nombre include solo se combina mejor con exclude .