クロスプラットフォームでアプリケーション設定を操作するための最良の解決策を知りたいのですが。
IOSでは、設定画面でアプリの外部で設定を変更できますが、WindowsPhoneとAndroidでは変更できません。
したがって、私のアイデアは、すべてのアプリケーション設定を表示する通常のページ/画面をアプリ内に作成し、DependencyServicesを使用してデバイスごとに特定の実装が可能なSave()メソッドとGet()メソッドとのインターフェイスを持つことです。
これは正しい方法ですか?
Application.Current.Propertiesディクショナリを使用してみましたが、実装に問題がありました。
わずかな労力で機能したソリューションは、JamesMontemagnoのXam.Plugin.SettingsNuGetでした。 GitHub NuGetをインストールすると、Settings.csを使用してヘルパーフォルダーが自動的に作成されます。永続的な設定を作成するには、次のようにします。
private const string QuestionTableSizeKey = "QuestionTableSizeKey";
private static readonly long QuestionTableSizeDefault = 0;
そして
public static long QuestionTableSize
{
get
{
return AppSettings.GetValueOrDefault<long>(QuestionTableSizeKey, QuestionTableSizeDefault);
}
set
{
AppSettings.AddOrUpdateValue<long>(QuestionTableSizeKey, value);
}
}
アプリでのアクセスと設定は次のようになります。
namespace XXX
{
class XXX
{
public XXX()
{
long myLong = 495;
...
Helpers.Settings.QuestionTableSize = myLong;
...
long oldsz = Helpers.Settings.QuestionTableSize;
}
}
}