Comment sauvegarder/restaurer la sérialisation de l'objet vers/à partir d'un fichier?
J'ai une liste d'objets et j'ai besoin d'enregistrer que quelque part dans mon ordinateur. J'ai lu quelques forums et je sais que l'objet doit être Serializable
. Mais ce serait bien si je peux obtenir un exemple. Par exemple, si j'ai le texte suivant:
[Serializable]
public class SomeClass
{
public string someProperty { get; set; }
}
SomeClass object1 = new SomeClass { someProperty = "someString" };
Mais comment puis-je stocker object1
quelque part dans mon ordinateur et de le récupérer plus tard?
- Voici un tutoriel qui montre comment sérialiser dans un fichier switchonthecode.com/tutorials/...
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser les éléments suivants:
string attributeXml = string.Empty;
dansDeSerializeObject
n'est jamais utilisé 😉J'ai juste écrit un blog sur l'enregistrement de données d'un objet Binaire, XML ou Json. Il est exact que vous devez décorer vos classes avec l'attribut [Serializable], mais seulement si vous êtes en utilisant la sérialisation Binaire. Vous préférerez peut-être utiliser des fichiers XML ou Json de sérialisation. Voici les fonctions de le faire dans les différents formats. Voir mon blog pour plus de détails.
Binaire
XML
Nécessite l'System.Xml de l'assemblée pour être inclus dans votre projet.
Json
Vous devez inclure une référence à Newtonsoft.Json de l'assemblée, qui peut être obtenu à partir de la Json.NET Package NuGet.
Exemple
System.Net.Http.HttpRequestException
) avec InnerExceptions:System.Net.WebException
etSystem.Net.Sockets.SocketException
?using(new *Writer(...)) { writer.Write()...); })
et ainsi de suite, au lieu de la plus prolixe try/catch.using
appels.Dispose()
qui n'est pas nécessairement équivalent à.Close()
. Je n'ai pas testé pour confirmer d'une façon ou de l'autre.IDisposable
interface a été créé afin de normaliser la façon de nettoyer et récupérer des ressources. Voir par exemple à l'Aide d'objets de mettre en œuvre IDisposable | Microsoft Docs.Vous aurez besoin de sérialiser à quelque chose: c'est, choisir le fichier binaire ou xml (par défaut sérialiseurs) ou écrire la sérialisation personnalisée code de sérialiser à une autre forme de texte.
Une fois que vous avez choisi, votre sérialisation (normalement) appeler un Flux qui est écrit à certains type de fichier.
Donc, avec votre code, si je devais utiliser la Sérialisation XML:
Alors, pour désérialiser:
REMARQUE: Ce code n'a pas été compilé et, a fortiori, de l'exécution, il peut y avoir quelques erreurs. Aussi, cela suppose complètement out-of-the-box de sérialisation/désérialisation. Si vous avez besoin d'comportement personnalisé, vous aurez besoin de faire des travaux supplémentaires.
1. Restaurer L'Objet À Partir D'Un Fichier
De Ici vous pouvez désérialiser un objet à partir d'un fichier dans les deux sens.
Solution 1: Lire un fichier dans une chaîne et désérialiser JSON à un type
Solution 2: Désérialiser JSON directement à partir d'un fichier
2. Enregistrer L'Objet De Fichier
de ici vous pouvez sérialiser un objet à déposer dans les deux sens.
Solution 1: Serialize JSON à une chaîne, puis écrire chaîne dans un fichier
Solution 2: Serialize JSON directement à un fichier
3. Extra
Vous pouvez télécharger Newtonsoft.Json de NuGet par la commande suivante
**1. Convertir la chaîne json à base64string et à Écrire ou ajouter à un fichier binaire.
2. Lire base64string de fichier binaire et désérialiser l'aide de BsonReader.
**