diff --git a/src/BootstrapBlazor/Localization/Json/JsonStringLocalizerFactory.cs b/src/BootstrapBlazor/Localization/Json/JsonStringLocalizerFactory.cs index 921971190f2cb005ae910ba023ed1fa58b8a608a..c0e020a76408c985e92944fe582ca8863c6f8523 100644 --- a/src/BootstrapBlazor/Localization/Json/JsonStringLocalizerFactory.cs +++ b/src/BootstrapBlazor/Localization/Json/JsonStringLocalizerFactory.cs @@ -87,6 +87,21 @@ internal class JsonStringLocalizerFactory : ResourceManagerStringLocalizerFactor return base.GetResourcePrefix(typeInfo); } + /// + /// GetResourcePrefix 方法 + /// + /// + /// + /// + protected override string GetResourcePrefix(string baseResourceName, string baseNamespace) + { + // https://gitee.com/LongbowEnterprise/BootstrapBlazor/issues/I5SRA1 + var resourcePrefix = base.GetResourcePrefix(baseResourceName, baseNamespace); + TypeName = $"{baseNamespace}.{baseResourceName}"; + + return resourcePrefix; + } + private IResourceNamesCache ResourceNamesCache { get; } = new ResourceNamesCache(); /// diff --git a/test/UnitTest/Localization/JsonStringLocalizerTest.cs b/test/UnitTest/Localization/JsonStringLocalizerTest.cs index 9e3899dae509bd11cbf9867077b3c5a395b81906..d5526982f898efbe0a614a73227ab4736de1d0b5 100644 --- a/test/UnitTest/Localization/JsonStringLocalizerTest.cs +++ b/test/UnitTest/Localization/JsonStringLocalizerTest.cs @@ -212,6 +212,26 @@ public class JsonStringLocalizerTest : BootstrapBlazorTestBase Assert.Equal("test-name", localizer["test-name"]); } + [Fact] + public void GetResourcePrefix_Ok() + { + // https://gitee.com/LongbowEnterprise/BootstrapBlazor/issues/I5SRA1 + var builder = new TestContext(); + builder.Services.AddConfiguration(); + + // 注入其他 Localization + builder.Services.AddLocalization(); + + // 注入 Bootstrap Localization + builder.Services.AddBootstrapBlazor(); + + var fac = builder.Services.GetRequiredService(); + var l = fac.Create("Lang", "UnitTest"); + var result = l["test"]; + Assert.True(result.ResourceNotFound); + Assert.Equal("test", result.Value); + } + private class MockTypeInfo : TypeDelegator { public override string? FullName => null;