在MonoDroid的或MonoTouch的我应该怎么用的,而不是对的app.config配置字符串

2019-08-03 12:29发布

我想存储的开发与生产连接字符串和配置字符串在MonoDroid的项目。 我通常将其存储在一个web.config或app.config中的应用设置,但我应该怎么做,在MonoDroid的和MonoTouch的项目? 我也想为它调试和发布之间自动切换配置建立,就像Visual Studio中确实有* .config文件。 在iOS应用,我可以存储这些在plist中,但我想在单一个跨平台的解决方案。

我会怎么做这MonoDroid的或MonoTouch的?

Answer 1:

你应该使用一个静态类#if声明。

就像是:

public static class Configuration {
#if DEBUG
    public const string ConnectionString = "debug string";
#else
    public const string ConnectionString = "release string";
#endif
}

使用的好处app.config是改变文件系统上的这些设置,而无需重新编译的能力。 在移动设备上,还没有一个很好的方法(尤其是iOS上),它部署后编辑文件。 所以这是一般最好只使用一个静态类,当你需要改变的值重新部署。 这也将在所有平台上工作,因为它仅仅是C#代码做的工作。



Answer 2:

有可用的Xamarin中心AppSetting读者在https://www.nuget.org/packages/PCLAppConfig它是连续传递非常有用的;

使用按如下:

1)NuGet包引用添加到您的PCL和平台项目。

2)增加您的PCL项目app.config文件,然后作为你的所有平台的项目链接文件。 对于Android,确保生成操作设置为“AndroidAsset”,为UWP设置构建行动“内容”。 加入你设置的键/值: <add key="config.text" value="hello from app.settings!" /> <add key="config.text" value="hello from app.settings!" />

3)初始化ConfigurationManager.AppSettings每个平台的项目,只是 'Xamarin.Forms.Forms.Init' 语句后,这是在AppDelegate中在IOS,Android中,应用程序在UWP / Windows的MainActivity.cs 8.1 / 8.1 WP:

ConfigurationManager.Initialise(PCLAppConfig.FileSystemStream.PortableStream.Current);

3)阅读设置: ConfigurationManager.AppSettings["config.text"];



文章来源: In monodroid or monotouch what should I use instead of app.config for configuration strings?