Xamarin.Forms 从 C# 类中的其他 xaml 文件获取资源

Xamarin.Forms get Resource from other xaml file in C# class

提问人:Hyacin 提问时间:11/10/2023 更新时间:11/14/2023 访问量:41

问:

我正在尝试从 DbConnection.cs 类中名为 Secretskeys.xaml 的 ResourceDictionary 中获取资源。但无论我做什么,当我尝试使用时,我仍然得到KeyNotFoundException

_DbLogib = (string)Application.Current.Resources["DbLogin"];

但是我从其他 xaml 文件中的这个文件中获取 API 密钥没有问题。我正在尝试制作适用于数据库的静态类,并且在 secretkeys.xaml 中我拥有所有密码和 api 密钥。

目录如下所示: Rider 中的目录

C# Android Xamarin Xamarin.Forms

评论

0赞 Liqun Shen-MSFT 11/14/2023
我可以重现这个问题。作为替代方法,您可以使用 .请查看我的答案。如果您有任何问题,请随时提问。Application.Current.Resources.TryGetValue

答:

0赞 Liqun Shen-MSFT 11/10/2023 #1

下面是一个解决方法。

首先,您应该合并资源字典,

在 App.xaml 中,

<Application.Resources>
    <ResourceDictionary>
         <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="Secretskeys.xaml" />
         </ResourceDictionary.MergedDictionaries>

...

然后,您可以使用

Application.Current.Resources.TryGetValue("DBLogin", out var myvalue)

Console.WriteLine((string)myvalue); // You could check the value 

如果您有任何问题,请告诉我。