@@ -159,22 +159,29 @@ private void HandleMissingResourceItem(string name)
159159 }
160160 }
161161
162+ private List < LocalizedString > ? _allLocalizerdStrings ;
163+
162164 /// <summary>
163165 /// 获取当前语言的所有资源信息
164166 /// </summary>
165167 /// <param name="includeParentCultures"></param>
166168 /// <returns></returns>
167169 public override IEnumerable < LocalizedString > GetAllStrings ( bool includeParentCultures )
168170 {
169- var ret = GetAllStringsFromService ( includeParentCultures )
170- ?? GetAllStringsFromBase ( includeParentCultures )
171- ?? GetAllStringsFromJson ( includeParentCultures ) ;
171+ if ( _allLocalizerdStrings == null )
172+ {
173+ var items = GetAllStringsFromService ( )
174+ ?? GetAllStringsFromBase ( )
175+ ?? GetAllStringsFromJson ( )
176+ ?? [ ] ;
172177
173- return ret ;
178+ _allLocalizerdStrings = MegerResolveLocalizers ( items ) ;
179+ }
180+ return _allLocalizerdStrings ;
174181
175182 // 1. 从注入服务中获取所有资源信息
176183 // get all strings from the other inject service
177- IEnumerable < LocalizedString > ? GetAllStringsFromService ( bool includeParentCultures )
184+ IEnumerable < LocalizedString > ? GetAllStringsFromService ( )
178185 {
179186 IEnumerable < LocalizedString > ? ret = null ;
180187 var localizer = Utility . GetStringLocalizerFromService ( Assembly , typeName ) ;
@@ -187,7 +194,7 @@ public override IEnumerable<LocalizedString> GetAllStrings(bool includeParentCul
187194
188195 // 2. 从父类 ResourceManagerStringLocalizer 中获取微软格式资源信息
189196 // get all strings from base json localization factory
190- IEnumerable < LocalizedString > ? GetAllStringsFromBase ( bool includeParentCultures )
197+ IEnumerable < LocalizedString > ? GetAllStringsFromBase ( )
191198 {
192199 IEnumerable < LocalizedString > ? ret = base . GetAllStrings ( includeParentCultures ) ;
193200 try
@@ -206,7 +213,6 @@ public override IEnumerable<LocalizedString> GetAllStrings(bool includeParentCul
206213
207214 // 3. 从 Json 文件中获取资源信息
208215 // get all strings from json localization file
209- IEnumerable < LocalizedString > GetAllStringsFromJson ( bool includeParentCultures ) => CacheManager . GetAllStringsByTypeName ( Assembly , typeName )
210- ?? CacheManager . GetAllStringsFromResolve ( includeParentCultures ) ;
216+ IEnumerable < LocalizedString > ? GetAllStringsFromJson ( ) => CacheManager . GetAllStringsByTypeName ( Assembly , typeName ) ;
211217 }
212218}
0 commit comments