@@ -23,16 +23,31 @@ internal static class LocalizationOptionsExtensions
23
23
/// <returns></returns>
24
24
public static IEnumerable < IConfigurationSection > GetJsonStringFromAssembly ( this JsonLocalizationOptions option , Assembly assembly , string cultureName )
25
25
{
26
- // 获得程序集内 Json 文件流集合
27
- var langHandlers = option . GetJsonHandlers ( assembly , cultureName ) . ToList ( ) ;
28
-
29
26
// 创建配置 ConfigurationBuilder
30
27
var builder = new ConfigurationBuilder ( ) ;
31
28
29
+ // 获取程序集中的资源文件
30
+ var assemblies = new List < Assembly > ( )
31
+ {
32
+ assembly
33
+ } ;
34
+
35
+ var entryAssembly = GetAssembly ( ) ;
36
+ if ( assembly != entryAssembly )
37
+ {
38
+ assemblies . Add ( entryAssembly ) ;
39
+ }
40
+ if ( option . AdditionalJsonAssemblies != null )
41
+ {
42
+ assemblies . AddRange ( option . AdditionalJsonAssemblies ) ;
43
+ }
44
+
45
+ var streams = assemblies . SelectMany ( i => option . GetResourceStream ( i , cultureName ) ) ;
46
+
32
47
// 添加 Json 文件流到配置
33
- foreach ( var h in langHandlers )
48
+ foreach ( var s in streams )
34
49
{
35
- builder . AddJsonStream ( h ) ;
50
+ builder . AddJsonStream ( s ) ;
36
51
}
37
52
38
53
// 获得配置外置资源文件
@@ -53,25 +68,15 @@ public static IEnumerable<IConfigurationSection> GetJsonStringFromAssembly(this
53
68
var config = builder . Build ( ) ;
54
69
55
70
// dispose json stream
56
- foreach ( var h in langHandlers )
71
+ foreach ( var s in streams )
57
72
{
58
- h . Dispose ( ) ;
73
+ s . Dispose ( ) ;
59
74
}
75
+
60
76
return config . GetChildren ( ) ;
61
- }
62
77
63
- private static IEnumerable < Stream > GetJsonHandlers ( this JsonLocalizationOptions option , Assembly assembly , string cultureName )
64
- {
65
- // 获取程序集中的资源文件
66
- var assemblies = new List < Assembly > ( )
67
- {
68
- assembly
69
- } ;
70
- if ( option . AdditionalJsonAssemblies != null )
71
- {
72
- assemblies . AddRange ( option . AdditionalJsonAssemblies ) ;
73
- }
74
- return assemblies . SelectMany ( i => option . GetResourceStream ( i , cultureName ) ) ;
78
+ [ ExcludeFromCodeCoverage ]
79
+ Assembly GetAssembly ( ) => Assembly . GetEntryAssembly ( ) ?? assembly ;
75
80
}
76
81
77
82
private static List < Stream > GetResourceStream ( this JsonLocalizationOptions option , Assembly assembly , string cultureName )
0 commit comments