如何处理动态资源文件

问题描述 投票:0回答:1

我们目前在 Azure 上托管的 C# Blazor 服务器应用程序中使用资源文件 (resx)。缺点是,当我们添加或进行更改时,我们必须重新部署,从而重新启动我们的网络应用程序。

我们如何使资源文件动态化,以便它们可以在运行时更改,以及检索的最佳存储方法是什么,例如Azure 存储上保存的数据库 (SQL/NoSQL) 或平面文件。

        var supportedCultures = new[] { "EN", "FI", "PL", "SV", "CY" };
        var localizationOptions = new RequestLocalizationOptions()
            .SetDefaultCulture(supportedCultures[0])
            .AddSupportedCultures(supportedCultures)
            .AddSupportedUICultures(supportedCultures);

        app.UseRequestLocalization(localizationOptions);
c# blazor-server-side resx
1个回答
0
投票

这取决于 resx 文件的使用方式。如果它们是编译为 dll 的项目的一部分,则可能无法解决此问题。您需要针对 resx 文件中的每个更改重新部署。

如果应用程序以某种方式将它们用作原始文件,那么您可以用新文件覆盖旧文件,但如果它们仅在启动时加载到内存中一次,则无论如何您都需要重新启动应用程序。

解决您问题的一个方法是将您的应用程序重新设计为两部分:主应用程序和资源应用程序。主应用程序可以从资源应用程序中检索资源,并在启动时将它们加载到内存中。

每次资源应用程序启动时,它都可以尝试将更新的资源发送到主应用程序。

然后您可以在每次 resx 时重新部署资源应用程序。文件更改。

© www.soinside.com 2019 - 2024. All rights reserved.