使用 _config.GetSection("section")["key"] 对性能有影响吗?

Is there a performance impact in using _config.GetSection("section")["key"]?

我在我的 asp.net 核心 2.0 应用程序中使用基于声明的授权,而不是在我的应用程序中对声明名称进行硬编码,我正在考虑在注入的配置对象中设置它们 (appsettings.json).

但在我深入那条路之前,我很好奇是否需要注意性能问题?

像这样:

var subscriptionClaim = user.Claims.FirstOrDefault(c => c.ClaimType == _config.GetSection("ClaimNames")["BasicMembership"]);

与这样的东西相比:

var subscriptionClaim = user.Claims.FirstOrDefault(c => c.ClaimType == "basicMembership");

在这一点上,我有 4-5 人声称我是 adding/removing 用户在我的应用程序的各个方面。将名称滚动到 appsettings 的原因是确保我不会打错声明名称,如果将来出于某种原因我可以更轻松地更改它们。

但如果 _config.GetSection("section")["key"]); 有明显的性能损失,我宁愿不这样做。我倾向于没有明显的性能命中,但我想确定。

提前致谢!

你的_configIConfiguration对象吗?

通常您在应用程序启动时构建您的配置对象,并将此信息加载到内存中,所以是的,性能差异最多可以忽略不计。

但正如其他人所说,如果性能是一个问题,没有比自己测试更好的方法了。