Cet article a fait l'objet d'une traduction manuelle. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte.
Traduction
Source
Ce sujet n'a pas encore été évalué - Évaluez ce sujet

SerializationInfo, classe

Stocke toutes les données nécessaires pour sérialiser ou désérialiser un objet. Cette classe ne peut pas être héritée.

System.Object
  System.Runtime.Serialization.SerializationInfo

Espace de noms :  System.Runtime.Serialization
Assembly :  mscorlib (dans mscorlib.dll)
[ComVisibleAttribute(true)]
public sealed class SerializationInfo

Le type SerializationInfo expose les membres suivants.

  Nom Description
Méthode publique SerializationInfo Crée une nouvelle instance de la classe SerializationInfo.
Début
  Nom Description
Propriété publique AssemblyName Obtient ou définit le nom d'assembly du type à sérialiser pendant la sérialisation uniquement.
Propriété publique FullTypeName Obtient ou définit le nom complet de Type à sérialiser.
Propriété publique IsAssemblyNameSetExplicit Retourne la valeur true si le nom de l'assembly a été défini explicitement.
Propriété publique IsFullTypeNameSetExplicit Retourne la valeur true si le nom de type complet a été défini explicitement.
Propriété publique MemberCount Obtient le nombre de membres qui ont été ajoutés au magasin SerializationInfo.
Propriété publique ObjectType Retourne le type de l'objet à sérialiser.
Début
  Nom Description
Méthode publique AddValue(String, Boolean) Ajoute une valeur booléenne au magasin SerializationInfo.
Méthode publique AddValue(String, Byte) Ajoute une valeur entière 8 bits non signée dans le magasin SerializationInfo.
Méthode publique AddValue(String, Char) Ajoute une valeur des caractères Unicode dans le magasin SerializationInfo.
Méthode publique AddValue(String, DateTime) Ajoute une valeur DateTime dans le magasin SerializationInfo.
Méthode publique AddValue(String, Decimal) Ajoute une valeur décimale dans le magasin SerializationInfo.
Méthode publique AddValue(String, Double) Ajoute une valeur à virgule flottante double précision dans le magasin SerializationInfo.
Méthode publique AddValue(String, Int16) Ajoute une valeur entière 16 bits signée dans le magasin SerializationInfo.
Méthode publique AddValue(String, Int32) Ajoute une valeur entière 32 bits signée dans le magasin SerializationInfo.
Méthode publique AddValue(String, Int64) Ajoute une valeur entière 64 bits signée dans le magasin SerializationInfo.
Méthode publique AddValue(String, Object) Ajoute l'objet spécifié dans le magasin SerializationInfo, où il est associé à un nom spécifié.
Méthode publique AddValue(String, SByte) Ajoute une valeur entière 8 bits signée dans le magasin SerializationInfo.
Méthode publique AddValue(String, Single) Ajoute une valeur à virgule flottante simple précision dans le magasin SerializationInfo.
Méthode publique AddValue(String, UInt16) Ajoute une valeur entière 16 bits non signée dans le magasin SerializationInfo.
Méthode publique AddValue(String, UInt32) Ajoute une valeur entière 32 bits non signée dans le magasin SerializationInfo.
Méthode publique AddValue(String, UInt64) Ajoute une valeur entière 64 bits non signée dans le magasin SerializationInfo.
Méthode publique AddValue(String, Object, Type) Ajoute une valeur au magasin SerializationInfo, où value est associé à name et est sérialisé en tant que Typetype.
Méthode publique Equals(Object) Détermine si l'Object spécifié est égal à l'Object en cours. (Hérité de Object.)
Méthode protégée Finalize Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de netto***ge avant qu'il ne soit récupéré par l'opération garbage collection. (Hérité de Object.)
Méthode publique GetBoolean Récupère une valeur booléenne du magasin SerializationInfo.
Méthode publique GetByte Récupère une valeur entière 8 bits non signée du magasin SerializationInfo.
Méthode publique GetChar Récupère une valeur des caractères Unicode du magasin SerializationInfo.
Méthode publique GetDateTime Récupère une valeur DateTime du magasin SerializationInfo.
Méthode publique GetDecimal Récupère une valeur décimale du magasin SerializationInfo.
Méthode publique GetDouble Récupère une valeur à virgule flottante double précision du magasin SerializationInfo.
Méthode publique GetEnumerator Retourne SerializationInfoEnumerator utilisé pour itérer au sein des paires nom-valeur dans le magasin SerializationInfo.
Méthode publique GetHashCode Sert de fonction de hachage pour un type particulier. (Hérité de Object.)
Méthode publique GetInt16 Récupère une valeur entière 16 bits signée du magasin SerializationInfo.
Méthode publique GetInt32 Récupère une valeur entière 32 bits signée du magasin SerializationInfo.
Méthode publique GetInt64 Récupère une valeur entière 64 bits signée du magasin SerializationInfo.
Méthode publique GetSByte Récupère une valeur entière 8 bits signée du magasin SerializationInfo.
Méthode publique GetSingle Récupère une valeur à virgule flottante simple précision du magasin SerializationInfo.
Méthode publique GetString Récupère une valeur String du magasin SerializationInfo.
Méthode publique GetType Obtient le Type de l'instance actuelle. (Hérité de Object.)
Méthode publique GetUInt16 Récupère une valeur entière 16 bits non signée du magasin SerializationInfo.
Méthode publique GetUInt32 Récupère une valeur entière 32 bits non signée du magasin SerializationInfo.
Méthode publique GetUInt64 Récupère une valeur entière 64 bits non signée du magasin SerializationInfo.
Méthode publique GetValue Récupère une valeur du magasin SerializationInfo.
Méthode protégée MemberwiseClone Crée une copie superficielle de l'objet Object actif. (Hérité de Object.)
Méthode publique SetType Définit Type de l'objet à sérialiser.
Méthode publique ToString Retourne une chaîne qui représente l'objet actuel. (Hérité de Object.)
Début

Cette classe est utilisée par des objets ayant un comportement de sérialisation personnalisé. La méthode GetObjectData sur ISerializable ou ISerializationSurrogate remplit le magasin SerializationInfo avec le nom, le type et la valeur de chaque information qu'elle souhaite sérialiser. Au cours de la désérialisation, la fonction appropriée peut récupérer cette information.

Des objets sont ajoutés au magasin SerializationInfo au moment de la sérialisation à l'aide des méthodes AddValue et récupérés du magasin SerializationInfo au moment de la désérialisation à l'aide des méthodes GetValue.

Pour plus d'informations sur la personnalisation de la sérialisation, consultez [<topic://cpconCustomSerialization>].

L'exemple de code suivant illustre SerializationInfo pour la sérialisation et la désérialisation personnalisées de diverses valeurs.


using System;
using System.Web;
using System.IO;
using System.Collections;
using System.Runtime.Serialization.Formatters.Binary;
using System.Runtime.Serialization;
using System.Security.Permissions;


// There should be only one instance of this type per AppDomain.
[Serializable]
public sealed class Singleton : ISerializable 
{
    // This is the one instance of this type.
    private static readonly Singleton theOneObject = new Singleton();

    // Here are the instance fields.
    private string someString_value;
    private Int32 someNumber_value;

   public string SomeString
   {
       get{return someString_value;}
       set{someString_value = value;}
   }

   public Int32 SomeNumber
   {
       get{return someNumber_value;}
       set{someNumber_value = value;}
   }

    // Private constructor allowing this type to construct the Singleton.
    private Singleton() 
    { 
        // Do whatever is necessary to initialize the Singleton.
        someString_value = "This is a string field";
        someNumber_value = 123;
    }

    // A method returning a reference to the Singleton.
    public static Singleton GetSingleton() 
    { 
        return theOneObject; 
    }

    // A method called when serializing a Singleton.
    [SecurityPermissionAttribute(SecurityAction.LinkDemand, 
    Flags=SecurityPermissionFlag.SerializationFormatter)]
    void ISerializable.GetObjectData(
        SerializationInfo info, StreamingContext context) 
    {
        // Instead of serializing this object, 
        // serialize a SingletonSerializationHelp instead.
        info.SetType(typeof(SingletonSerializationHelper));
        // No other values need to be added.
    }

    // Note: ISerializable's special constructor is not necessary 
    // because it is never called.
}


[Serializable]
internal sealed class SingletonSerializationHelper : IObjectReference 
{
    // This object has no fields (although it could).

    // GetRealObject is called after this object is deserialized.
    public Object GetRealObject(StreamingContext context) 
    {
        // When deserialiing this object, return a reference to 
        // the Singleton object instead.
        return Singleton.GetSingleton();
    }
}


class App 
{
    [STAThread]
    static void Main() 
    {
        FileStream fs = new FileStream("DataFile.dat", FileMode.Create);

        try 
        {
            // Construct a BinaryFormatter and use it 
            // to serialize the data to the stream.
            BinaryFormatter formatter = new BinaryFormatter();

            // Create an array with multiple elements refering to 
            // the one Singleton object.
            Singleton[] a1 = { Singleton.GetSingleton(), Singleton.GetSingleton() };

            // This displays "True".
            Console.WriteLine(
                "Do both array elements refer to the same object? " + 
                (a1[0] == a1[1]));     

            // Serialize the array elements.
            formatter.Serialize(fs, a1);

            // Deserialize the array elements.
            fs.Position = 0;
            Singleton[] a2 = (Singleton[]) formatter.Deserialize(fs);

            // This displays "True".
            Console.WriteLine("Do both array elements refer to the same object? " 
                + (a2[0] == a2[1])); 

            // This displays "True".
            Console.WriteLine("Do all array elements refer to the same object? " 
                + (a1[0] == a2[0]));
        }   
        catch (SerializationException e) 
        {
            Console.WriteLine("Failed to serialize. Reason: " + e.Message);
            throw;
        }
        finally 
        {
            fs.Close();
        }
    }
}


.NET Framework

Pris en charge dans : 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Windows 7, Windows Vista SP1 ou ultérieur, Windows XP SP3, Windows XP SP2 Édition x64, Windows Server 2008 (installation minimale non prise en charge), Windows Server 2008 R2 (installation minimale prise en charge avec SP1 ou version ultérieure), Windows Server 2003 SP2

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.
Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.
Cela vous a-t-il été utile ?
(1500 caractères restants)
Contenu de la communauté Ajouter
Annotations FAQ