我想存储的开发与生产连接字符串和配置字符串在MonoDroid的项目。 我通常将其存储在一个web.config或app.config中的应用设置,但我应该怎么做,在MonoDroid的和MonoTouch的项目? 我也想为它调试和发布之间自动切换配置建立,就像Visual Studio中确实有* .config文件。 在iOS应用,我可以存储这些在plist中,但我想在单一个跨平台的解决方案。
我会怎么做这MonoDroid的或MonoTouch的?
我想存储的开发与生产连接字符串和配置字符串在MonoDroid的项目。 我通常将其存储在一个web.config或app.config中的应用设置,但我应该怎么做,在MonoDroid的和MonoTouch的项目? 我也想为它调试和发布之间自动切换配置建立,就像Visual Studio中确实有* .config文件。 在iOS应用,我可以存储这些在plist中,但我想在单一个跨平台的解决方案。
我会怎么做这MonoDroid的或MonoTouch的?
你应该使用一个静态类#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#代码做的工作。
有可用的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"];