C# 如何在运行时合并两个资源文件?
这是否可能维护多个资源文件或以这样的方式合并它们,以便我们有一个默认文件,其中包含每个记录的默认值,而其他资源文件应根据其要求覆盖这些记录 我们的代码应该检查特定记录是否被覆盖,如果被覆盖,那么它将接受被覆盖的值,否则它将接受默认资源文件 例如:-具有记录的默认资源文件C# 如何在运行时合并两个资源文件?,c#,windows,xaml,uwp,resources,C#,Windows,Xaml,Uwp,Resources,这是否可能维护多个资源文件或以这样的方式合并它们,以便我们有一个默认文件,其中包含每个记录的默认值,而其他资源文件应根据其要求覆盖这些记录 我们的代码应该检查特定记录是否被覆盖,如果被覆盖,那么它将接受被覆盖的值,否则它将接受默认资源文件 例如:-具有记录的默认资源文件 <data name="Common_Color" xml:space="preserve"> <value>#1892E7</value>
<data name="Common_Color" xml:space="preserve">
<value>#1892E7</value>
</data>
<data name="LoginView_Icon_Color" xml:space="preserve">
<value>#1892E7</value>
</data>
<data name="Here_Text_Color" xml:space="preserve">
<value>#FFFF1BF5</value>
</data>
#1892E7
#1892E7
#FF1BF5
其他文件Resources1.resw具有以下记录
<data name="Common_Color" xml:space="preserve">
<value>#FFFFF</value>
</data>
#FFFFF
其他文件Resources2.resw有如下记录
<data name="LoginView_Icon_Color" xml:space="preserve">
<value>#1892E7</value>
</data>
#1892E7
通过这种方式,如果我们需要公共颜色值,我们可以合并默认文件和资源1文件,并将公共颜色值从#1892E7更改为#FFFFF,并且有一个这样的文件,并在代码中使用该文件
<data name="Common_Color" xml:space="preserve">
<value>#FFFFF</value>
</data>
<data name="LoginView_Icon_Color" xml:space="preserve">
<value>#1892E7</value>
</data>
<data name="Here_Text_Color" xml:space="preserve">
<value>#FFFF1BF5</value>
</data>
#FFFFF
#1892E7
#FF1BF5
如何在运行时合并两个资源文件
UWP不提供直接合并resw文件的api,通常在UWP平台的UI中使用resw。我们可以使用VisualStudio编辑resw
文件,并使用以下内容加载内容,但无法在运行时编辑其内容
var resourceLoader = Windows.ApplicationModel.Resources.ResourceLoader.GetForCurrentView();
this.myXAMLTextBlockElement.Text = resourceLoader.GetString("Farewell");
对于您的需求,我们建议您使用file来替换,您可以将json文件反序列化为对象,比较不同的合并,然后将新对象序列化为json文件