NOP源码分析 八---set的存储
我们已经把ISetting的基本实现都过了一遍,但好像它的值如何取出来的,还不知道。 其实通过上节我们可知道 ,最终他是通过SettingService.cs类GetAllSettingsCached方法进行。内部有如下代码: var query = from s in _settingRepository.TableNoTracking orderby s.Name, s.StoreId select s; AsNoTracking是EF的一个功能,就是不跟踪状态。只读的情况下用它提高效率,可百度。最终是通过settingRepository从数据库取出的数值。当然表是Setting表,通过声明private readonly IRepository<Setting> _settingRepository; 就可知道。 好了,现在所有知道所有的ISetting的继承子类 都是通过读取数据库的Setting表得到的数值。 没想到LocalizationSettings引申出这么多,我们还是要回到当初那个位置,从那里继续。回到WebWorkContext类的方法WorkingLanguage。 Language detectedLanguage = null; if (_localizationSettings.SeoFriendlyUrlsForLanguagesEnabled)