Preferences

Örneğe göz atın. Örneğe göz atın

Bu makalede .NET Çok Platformlu Uygulama Kullanıcı Arabirimi (.NET MAUI) IPreferences arabirimini nasıl kullanabileceğiniz açıklanmaktadır. Bu arabirim, uygulama tercihlerini bir anahtar/değer deposunda depolamaya yardımcı olur.

Arabirimin IPreferences varsayılan uygulaması özelliği aracılığıyla Preferences.Default kullanılabilir. IPreferences Hem arabirim hem Preferences de sınıf ad alanında Microsoft.Maui.Storage yer alır.

Depolama türleri

Preferences bir String anahtarla depolanır. Tercihin değeri aşağıdaki veri türlerinden biri olmalıdır:

değerleri DateTime , sınıfı tarafından DateTime tanımlanan iki yöntem kullanılarak 64 bit ikili (uzun tamsayı) biçiminde depolanır:

  • ToBinary yöntemi, değeri kodlamak DateTime için kullanılır.
  • FromBinary yöntemi değerin kodunu çözer.

Eşgüdümlü Evrensel Saat (UTC) değeri olmayan bir DateTime depolandığında kodu çözülen değerlerde yapılabilecek ayarlamalar için bu yöntemlerin belgelerine bakın.

Tercihleri ayarlama

Preferences yöntemi çağrılarak Preferences.Set ayarlanır ve anahtar ve değer sağlanır:

// Set a string value:
Preferences.Default.Set("first_name", "John");

// Set an numerical value:
Preferences.Default.Set("age", 28);

// Set a boolean value:
Preferences.Default.Set("has_pets", true);

Tercihleri alma

Tercihlerden bir değer almak için, tercih anahtarını ve ardından anahtar mevcut olmadığında varsayılan değeri geçirirsiniz:

string firstName = Preferences.Default.Get("first_name", "Unknown");
int age = Preferences.Default.Get("age", -1);
bool hasPets = Preferences.Default.Get("has_pets", false);

Anahtar olup olmadığını denetleme

Tercihlerde bir anahtarın mevcut olup olmadığını denetlemek yararlı olabilir. Get Anahtar mevcut olmadığında varsayılan bir değer ayarlamış olsanız bile, anahtarın mevcut olduğu durumlar olabilir, ancak anahtarın değeri varsayılan değerle eşleşmiştir. Bu nedenle, anahtarın mevcut olmadığını gösteren bir gösterge olarak varsayılan değere güvenemezsiniz. Bir anahtarın ContainsKey mevcut olup olmadığını belirlemek için yöntemini kullanın:

bool hasKey = Preferences.Default.ContainsKey("my_key");

Bir veya tüm anahtarları kaldırma

Remove Tercihlerden belirli bir anahtarı kaldırmak için yöntemini kullanın:

Preferences.Default.Remove("first_name");

Tüm anahtarları kaldırmak için yöntemini Clear kullanın:

Preferences.Default.Clear();

Paylaşılan anahtarlar

Uygulamanız tarafından depolanan tercihler yalnızca uygulamanız tarafından görülebilir. Ancak, diğer uzantılar veya bir izleme uygulaması tarafından kullanılabilecek paylaşılan bir tercih de oluşturabilirsiniz. Bir tercihi ayarladığınızda, kaldırdığınızda veya aldığınızda, tercihin depolandığı kapsayıcının adını belirtmek için isteğe bağlı bir dize parametresi sağlanabilir.

Aşağıdaki yöntemler adlı sharedNamebir dize parametresi alır:

  • Preferences.Set
  • Preferences.Get
  • Preferences.Remove
  • Preferences.Clear

Önemli

Paylaşılan tercihlerin davranışa özgü uygulamaları olduğundan lütfen platform uygulamasına özgü özellikleri okuyun

Sistem ayarlarıyla tümleştirme

Preferences yerel olarak depolanır ve bu sayede ayarlarınızı yerel sistem ayarlarıyla tümleştirebilirsiniz. Platformla tümleştirmek için platform belgelerini izleyin:

Platform farklılıkları

Bu bölümde, tercihler API'siyle platforma özgü farklılıklar açıklanmaktadır.

Tüm veriler Paylaşılan Preferencesiçinde depolanır. Belirtilmezse sharedName , varsayılan Paylaşılan Preferences kullanılır. Aksi takdirde, belirtilen adla özel bir Paylaşılan Preferences almak için ad kullanılır.

Kalıcılık

Uygulamanın kaldırılması, Otomatik Yedekleme özelliğini kullanırken uygulamanın Android 6.0 (API düzeyi 23) veya sonraki bir sürümde çalışması dışında tüm tercihlerin kaldırılmasına neden olur. Bu özellik varsayılan olarak açıktır ve API'nin kullandığı Paylaşılan PreferencesPreferences dahil olmak üzere uygulama verilerini korur. Google'ın Otomatik Yedekleme belgelerini izleyerek bunu devre dışı bırakabilirsiniz.

Sınırlamalar

API az miktarda metin depolamak için tasarlandığından, büyük miktarda metin depolarsanız performans etkilenebilir.