我在我的asp.net核心2.0應用程序中使用基於聲明的授權,而不是在整個應用程序中對聲明名稱進行硬編碼,我正在考慮在注入的配置對象(appsettings.json)中設置它們。使用_config.GetSection(「section」)[「key」]會對性能產生影響嗎?
但是在我潛入那條路之前,我很好奇是否有需要注意的性能問題?
事情是這樣的:
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"]);
有明顯的性能影響,我寧可不要。我傾向於沒有明顯的打擊,但我想確定。
在此先感謝!
https://ericlippert.com/2012/12/17/performance-rant/ – DavidG
找出來的最好方法就是自己檢查一下。沒有什麼比找到並證明給自己 – BugFinder
最好的辦法是有一個圍繞配置的包裝類。使其成爲靜態的,以便它只從文件中檢索配置數據一次並保留它。並使用該包裝類,無論你想要的配置值。 –