Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

SerializationInfo.AddValue-Methode: (String, UInt32)

 

Veröffentlicht: Oktober 2016

Fügt einen 32-Bit-Ganzzahlwert ohne Vorzeichen in den SerializationInfo Speichern.

Diese API ist nicht CLS-kompatibel.

Namespace:   System.Runtime.Serialization
Assembly:  mscorlib (in mscorlib.dll)

[CLSCompliantAttribute(false)]
public void AddValue(
	string name,
	uint value
)

Parameter

name
Type: System.String

Der Name, mit dem Wert zuordnen, sodass dieser später deserialisiert werden kann.

value
Type: System.UInt32

Die UInt32 zu serialisierende Wert.

Exception Condition
ArgumentNullException

Der name-Parameter ist null.

SerializationException

Ein Wert bereits zugeordnet wurde name.

Wenn zwei Werte hinzugefügt werden case-Namen, die nur von unterscheiden, keine Ausnahme ausgelöst, die wird nicht empfohlen. Hinzufügen von zwei Werte mit identischen Namen bewirkt jedoch die SerializationException ausgelöst wird.

Im folgenden Beispiel wird die AddValue Methode, um die Serialisierung eines Typs anzupassen. Der Code Fügt eine Zeichenfolge und eine ganze Zahl mit einer Instanz von der SerializationInfo -Klasse in die GetObjectData Methode der ISerializable Schnittstelle. Der Code verwendet auch die GetValue Methode zum Abrufen von Werten aus der SerializationInfo.

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

[assembly: SecurityPermission(
SecurityAction.RequestMinimum, Execution = true)]
namespace ISerializableExample
{
    class Program
    {
        public static void Main()
        {
            try
            {
                Run();
            }
            catch (Exception exc)
            {
                Console.WriteLine("{0}: {1}", exc.Message, exc.StackTrace);
            }
            finally
            {
                Console.WriteLine("Press Enter to exit....");
                Console.ReadLine();
            }
        }

        static void Run()
        {            
            BinaryFormatter binaryFmt = new BinaryFormatter();
            Person p = new Person();
            p.IdNumber = 1010;
            p.Name = "AAAAA";
            FileStream fs = new FileStream
                ("Person.xml", FileMode.OpenOrCreate);
            binaryFmt.Serialize(fs, p);
            fs.Close();
            Console.WriteLine
                ("Original Name: {0}, Original ID: {1}", p.Name, p.IdNumber);

            // Deserialize.
            fs = new FileStream
                ("Person.xml", FileMode.OpenOrCreate);
            Person p2 = (Person)binaryFmt.Deserialize(fs);
                Console.WriteLine("New Name: {0}, New ID: {1}", p2.Name, p2.IdNumber);
            fs.Close();
            }
        }
    [Serializable]
    public class Person : ISerializable
    {
        private string name_value;
        private int ID_value;

        public Person() { }
        protected Person(SerializationInfo info, StreamingContext context)
        {
            if (info == null)
                throw new System.ArgumentNullException("info");
            name_value = (string)info.GetValue("AltName", typeof(string));
            ID_value = (int)info.GetValue("AltID", typeof(int));
        }

        [SecurityPermission(SecurityAction.LinkDemand,
            Flags = SecurityPermissionFlag.SerializationFormatter)]
        public virtual void GetObjectData(
        SerializationInfo info, StreamingContext context)
        {
            if (info == null)
                throw new System.ArgumentNullException("info");
            info.AddValue("AltName", "XXX");
            info.AddValue("AltID", 9999);
        }

        public string Name
        {
            get { return name_value; }
            set { name_value = value; }
        }

        public int IdNumber
        {
            get { return ID_value; }
            set { ID_value = value; }
        }
    }
}

.NET Framework
Verfügbar seit 1.1
Zurück zum Anfang
Anzeigen: