通用(UWP)应用程序中的ConfigurationManager和AppSettings
我想在配置文件中存储API密钥而不将其检入源代码控制,并在我的UWP应用程序中读取数据。
一个常见的解决方案是将密钥存储在.config文件中(例如app.config
或web.config
)并像这样访问它:
var apiKey = ConfigurationManager.AppSettings.Get("apiKey");
我正在使用通用Windows(UWP)应用程序,无法访问包含ConfigurationManager
的System.Configuration命名空间。
如何在UWP应用程序中访问AppSettings? 或者,在UWP应用程序中访问配置数据的最佳方法是什么?
在我的特定用例中,我需要使用源控件未跟踪的外部文件。 有两种方法可以从资源或配置文件中访问数据。
一种是打开并解析配置文件。 给定带有构建操作 Content
的文件sample.txt
( 复制到输出目录无关紧要),我们可以阅读它
var uri = new System.Uri("ms-appx:///sample.txt"); var sampleFile = await Windows.Storage.StorageFile.GetFileFromApplicationUriAsync(uri);
要么
var packageFolder = Windows.ApplicationModel.Package.Current.InstalledLocation; var sampleFile = await packageFolder.GetFileAsync("sample.txt");
其次是
var contents = await Windows.Storage.FileIO.ReadTextAsync(sampleFile);
或者,我们可以使用资源 。 向项目添加一个名为resourcesFile.resw
的新资源项。 要访问数据,请使用:
var resources = new Windows.ApplicationModel.Resources.ResourceLoader("resourcesFile"); var token = resources.GetString("secret");
我在UWP中的自定义资源文件的博客文章中写了更详细的答案
我认为你所谓的“ApiKey”是API为你提供生成访问令牌的静态密钥。 如果是这种情况,也许最好的方法是在源代码控件中创建一个带有该值的静态类,如下所示:
public static class MyCredentials { public static string MyApiKey = "apiKey"; }
然后,您可以从代码中轻松访问该值:
var myApiKey = MyCredentials.MyApiKey;
如果要将值存储在纯文本文件中,则必须使用StorageFile
和FileIO
类手动编写/读取它。
相反,如果“ApiKey”表示动态访问令牌,那么最好的解决方案是使用ApplicationDataContainer
作为战略说。
您无需创建配置文件。 UWP具有存储本地设置/配置的内置解决方案。 请查看本教程:
https://msdn.microsoft.com/en-us/library/windows/apps/mt299098.aspx
使用ApplicationDataContainer,您将能够通过键获取值:
上述就是C#学习教程:通用(UWP)应用程序中的ConfigurationManager和AppSettings分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
Object value = localSettings.Values["exampleSetting"];
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1003206.html