【发布时间】:2018-03-09 00:33:44
【问题描述】:
我在我的 asp.net core 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 次声称我在我的应用程序的不同点添加/删除用户。将名称滚动到 appsettings 的原因是确保我不会拼写声明名称,并且如果将来出于任何原因我可以更轻松地更改它们。
但如果_config.GetSection("section")["key"]); 有明显的性能影响,我宁愿不这样做。我倾向于没有明显的性能命中,但我想确定一下。
提前致谢!
【问题讨论】:
-
最好的发现方法是自己检查......没有什么比发现并向自己证明这一点更重要
-
最好有一个围绕配置的包装类。将其设为静态,以便它只从文件中检索配置数据一次并保留它。并在需要配置值的任何地方使用该包装类。
标签: c# asp.net configuration appsettings asp.net-core-2.0