(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

SerializationInfo.AddValue-Methode (String, UInt32)

Fügt dem SerializationInfo-Speicher den Wert einer 32-Bit-Ganzzahl ohne Vorzeichen hinzu.

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
Typ: System.String
Der dem Wert zuzuordnende Name, der für die spätere Deserialisierung benötigt wird.
value
Typ: System.UInt32
Der zu serialisierende UInt32-Wert.

AusnahmeBedingung
ArgumentNullException

Der name-Parameter ist null.

SerializationException

Der name wurde bereits einem Wert zugeordnet.

Wenn zwei Werte hinzugefügt werden, deren Namen sich nur hinsichtlich der Groß-/Kleinschreibung unterscheiden, wird keine Ausnahme ausgelöst. Dies ist nicht empfehlenswert. Wenn zwei Werte mit exakt übereinstimmenden Namen hinzugefügt werden, wird die SerializationException ausgelöst.

Im folgenden Beispiel wird die AddValue-Methode verwendet, um die Serialisierung eines Typs anzupassen. Im Code werden eine Zeichenfolge und eine ganze Zahl einer Instanz der SerializationInfo-Klasse in der GetObjectData-Methode der ISerializable-Schnittstelle hinzugefügt. Im Code wird außerdem die GetValue-Methode verwendet, um Werte aus SerializationInfo abzurufen.


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

Unterstützt in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft