Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在运行时合并两个资源文件?_C#_Windows_Xaml_Uwp_Resources - Fatal编程技术网

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文件