【问题标题】:Difference between environment include vs environment names attributes环境包括与环境名称属性之间的区别
【发布时间】:2021-10-25 21:29:46
【问题描述】:

有什么区别

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

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

官方文档根本无法区分它们(对我而言):

Environment Tag Helper in ASP.NET Core

名字

...如果提供的任何环境名称与当前环境匹配,则呈现封闭的内容...环境值与 IWebHostEnvironment.EnvironmentName 返回的当前值进行比较

如果托管环境是暂存环境或生产环境,则会呈现内容

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

包括

include 属性表现出与 names 属性类似的行为。 include 属性值中列出的环境必须与应用的托管环境 (IWebHostEnvironment.EnvironmentName) 匹配,才能呈现标记的内容。

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

甚至他们的代码 sn-ps 使用相同的自我描述“IWebHostEnvironment.EnvironmentName is Staging or Production”。

两者有什么区别?

【问题讨论】:

    标签: c# asp.net .net asp.net-core


    【解决方案1】:

    似乎“名称”是较旧的方式,而“包含/排除”是较新的方式。

    EnvironmentTagHelper 上的新 exclude 属性可让您轻松告诉 EnvironmentTagHelper 在除您指定的环境之外的所有环境中呈现。还有一个新的 include 属性,其行为与 ASP.NET Core 1 中的 names 相同。

    Exploring the Environment Tag Helper exclude and include attributes in ASP.NET Core 2

    我猜微软为了向后兼容保留了旧的names。 IDK 为什么文档没有反映这一点。

    根据我的经验、官方文档和上面那篇文章,nameinclude 在功能上没有任何区别。 include 这个名字更适合与 exclude 搭配。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-11-15
      • 2011-03-21
      • 1970-01-01
      • 1970-01-01
      • 2016-05-21
      • 2018-12-18
      • 2021-07-25
      相关资源
      最近更新 更多