Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Avvertimento
Questo componente è stato archiviato e non è disponibile nella versione corrente di Windows Community Toolkit.
Sebbene non ci siano piani immediati per convertire questo componente in 8.x, la community è lieta di esprimere interesse o contribuire alla sua inclusione.
Per altre informazioni:
La documentazione originale è riportata di seguito.
L'helper di Archiviazione oggetti ti aiuterà a gestire l'archiviazione di oggetti generici all'interno delle applicazioni UWP, sia in locale che in tutti i dispositivi (roaming).
- LocalObjectStorageHelper Class archivia i dati nell'ambiente locale (solo nel dispositivo corrente)
- Classe RoamingObjectStorageHelper
Costruttori
LocalObjectStorageHelper e RoamingObjectStorageHelper hanno lo stesso costruttore con un parametro facoltativo:
| Costruttore | Description |
|---|---|
| ObjectStorageHelper(IObjectSerializer = null) | Inizializza una nuova istanza della classe ObjectStorageHelper con l'oggetto IObjectSerializer fornito, che verrà usato durante la serializzazione e la deserializzazione dei dati in Impostazioni o in Archiviazione; se non viene fornito alcun serializzatore, verrà usato un serializzatore JSON predefinito. |
Proprietà
| Proprietà | TIPO | Description |
|---|---|---|
| Folder | Storagefolder | Ottiene o imposta la cartella di archiviazione |
| Settings | ApplicationDataContainer | Ottiene o imposta il contenitore delle impostazioni |
Methods
| Methods | Tipo di ritorno | Description |
|---|---|---|
| FileExistsAsync(String) | Attività<bool> | Rilevare se esiste già un file |
| KeyExists(String) | bool | Rilevare se esiste già un'impostazione |
| KeyExists(String, String) | bool | Rilevare se un'impostazione esiste già in composito |
| Read(String, T) | T | Recuperare un singolo elemento in base alla relativa chiave |
| Read(String, String, T) | T | Recuperare un singolo elemento in base alla chiave in composito |
| ReadFileAsync(String, T) | Attività<T> | Recuperare l'oggetto dal file |
| Save(String, IDictionary) | vuoto | Salvare un gruppo di elementi attraverso la sua chiave in un'entità composita. Questo metodo deve essere considerato per gli oggetti che non superano 8.000 byte durante la durata dell'applicazione (fa riferimento a SaveFileAsync<T>(String, T) per oggetti complessi/di grandi dimensioni) e per i gruppi di impostazioni che devono essere trattati in modo atomico |
| Save(String, T) | vuoto | Salvare un singolo elemento in base alla relativa chiave. Questo metodo deve essere considerato per gli oggetti che non superano 8.000 byte durante la durata dell'applicazione (fa riferimento a SaveFileAsync<T>(String, T) per oggetti complessi/di grandi dimensioni |
| SaveFileAsync(String, T) | Task<StorageFile> | Salvare l'oggetto all'interno del file. Non esiste alcuna limitazione per l'uso di questo metodo (fa riferimento al metodo Save<T>(String, T) per oggetti semplici. |
Example
Archiviazione locale
Se è necessario gestire i salvataggi locali di qualsiasi oggetto (generico), è possibile usare LocalObjectStorageHelper.
var helper = new LocalObjectStorageHelper();
// Read simple objects
string keySimpleObject = "simple";
if (helper.KeyExists(keySimpleObject))
{
string result = helper.Read<string>(keySimpleObject);
}
// Read simple objects in a composite
string keyCompositeObject = "composite";
if (helper.KeyExists(keyCompositeObject, keySimpleObject))
{
string result = helper.Read<string>(keyCompositeObject, keySimpleObject);
}
// Save simple objects
helper.Save(keySimpleObject, 47);
// Save simple objects in a composite
Dictionary<string, object> simpleObjects = new Dictionary<string, object>();
simpleObjects.Add("simpleObjectValueOne", 47);
simpleObjects.Add("simpleObjectValueTwo", "hello!");
helper.Save(keyCompositeObject, simpleObjects);
// Read complex/large objects
string keyLargeObject = "large";
if (await helper.FileExistsAsync(keyLargeObject))
{
var result = await helper.ReadFileAsync<MyLargeObject>(keyLargeObject);
}
// Save complex/large objects
var o = new MyLargeObject
{
...
};
await helper.SaveFileAsync(keySimpleObject, o);
Dim helper = New LocalObjectStorageHelper()
' Read simple objects
Dim keySimpleObject As String = "simple"
If helper.KeyExists(keySimpleObject) Then
Dim result As String = helper.Read(Of String)(keySimpleObject)
End If
' Read simple objects in a composite
Dim keyCompositeObject As String = "composite"
If helper.KeyExists(keyCompositeObject, keySimpleObject) Then
Dim result As String = helper.Read(Of String)(keyCompositeObject, keySimpleObject)
End If
' Save simple objects
helper.Save(keySimpleObject, 47)
' Save simple objects in a composite
Dictionary(Of String, Object) simpleObjects = New Dictionary(Of String, Object)()
simpleObjects.Add("simpleObjectValueOne", 47)
simpleObjects.Add("simpleObjectValueTwo", "hello!")
helper.Save(keyCompositeObject, simpleObjects)
' Read complex/large objects
Dim keyLargeObject As String = "large"
If Await helper.FileExistsAsync(keyLargeObject) Then
Dim result = Await helper.ReadFileAsync(Of MyLargeObject)(keyLargeObject)
End If
' Save complex/large objects
Dim o = New MyLargeObject With {
...
}
Await helper.SaveFileAsync(keySimpleObject, o)
Archiviazione in roaming
Allo stesso modo, se è necessario gestire i salvataggi mobili in tutti i dispositivi utente, è possibile usare RoamingObjectStorageHelper.
L'implementazione di RoamingObjectStorageHelper è assolutamente simile a LocalObjectStorageHelper.
var helper = new RoamingObjectStorageHelper();
// Read simple objects
string keySimpleObject = "simple";
if (helper.KeyExists(keySimpleObject))
{
string result = helper.Read<string>(keySimpleObject);
}
// Read simple objects in a composite
string keyCompositeObject = "composite";
if (helper.KeyExists(keyCompositeObject, keySimpleObject))
{
string result = helper.Read<string>(keyCompositeObject, keySimpleObject);
}
// Save simple objects
helper.Save(keySimpleObject, 47);
// Save simple objects in a composite
Dictionary<string, object> simpleObjects = new Dictionary<string, object>();
simpleObjects.Add("simpleObjectValueOne", 47);
simpleObjects.Add("simpleObjectValueTwo", "hello!");
helper.Save(keyCompositeObject, simpleObjects);
// Read complex/large objects
string keyLargeObject = "large";
if (await helper.FileExistsAsync(keyLargeObject))
{
var result = await helper.ReadFileAsync<MyLargeObject>(keyLargeObject);
}
// Save complex/large objects
var o = new MyLargeObject
{
...
};
await helper.SaveFileAsync(keySimpleObject, o);
Dim helper = New RoamingObjectStorageHelper()
' Read simple objects
Dim keySimpleObject As String = "simple"
If helper.KeyExists(keySimpleObject) Then
Dim result As String = helper.Read(Of String)(keySimpleObject)
End If
' Read simple objects in a composite
Dim keyCompositeObject As String = "composite"
If helper.KeyExists(keyCompositeObject, keySimpleObject) Then
Dim result As String = helper.Read(Of String)(keyCompositeObject, keySimpleObject)
End If
' Save simple objects
helper.Save(keySimpleObject, 47)
' Save simple objects in a composite
Dictionary(Of String, Object) simpleObjects = New Dictionary(Of String, Object)()
simpleObjects.Add("simpleObjectValueOne", 47)
simpleObjects.Add("simpleObjectValueTwo", "hello!")
helper.Save(keyCompositeObject, simpleObjects)
' Read complex/large objects
Dim keyLargeObject As String = "large"
If Await helper.FileExistsAsync(keyLargeObject) Then
Dim result = Await helper.ReadFileAsync(Of MyLargeObject)(keyLargeObject)
End If
' Save complex/large objects
Dim o = New MyLargeObject With {
...
}
Await helper.SaveFileAsync(keySimpleObject, o)
Progetto di esempio
Pagina di esempio di origine di Object Storage. Puoi vederlo in azione nell'app di esempio di Windows Community Toolkit.
Requisiti
| Famiglia di dispositivi | Universale, 10.0.16299.0 o versione successiva |
|---|---|
| Namespace | Microsoft.Toolkit.Uwp |
| Pacchetto NuGet | Microsoft.Toolkit.Uwp |
API
.NET Community Toolkit