本文由机器翻译。若要查看英语原文,请勾选“英语”复选框。 也可将鼠标指针移到文本上,在弹出窗口中显示英语原文。
翻译
英语

SerializationInfo 类

 

将序列化或反序列化对象所需的所有数据都存储。 此类不能被继承。

命名空间:   System.Runtime.Serialization
程序集:  mscorlib(位于 mscorlib.dll)

System.Object
  System.Runtime.Serialization.SerializationInfo

[ComVisibleAttribute(true)]
public sealed class SerializationInfo

名称说明
System_CAPS_pubmethodSerializationInfo(Type, IFormatterConverter)

创建 SerializationInfo 类的新实例。

System_CAPS_pubmethodSerializationInfo(Type, IFormatterConverter, Boolean)

初始化 SerializationInfo 类的新实例。

名称说明
System_CAPS_pubpropertyAssemblyName

获取或设置要在仅序列化期间序列化的类型的程序集名称。

System_CAPS_pubpropertyFullTypeName

获取或设置的完整名称 Type 要序列化。

System_CAPS_pubpropertyIsAssemblyNameSetExplicit

获取是否已显式设置的程序集名称。

System_CAPS_pubpropertyIsFullTypeNameSetExplicit

获取是否已显式设置的完整类型名。

System_CAPS_pubpropertyMemberCount

获取已添加到的成员数 SerializationInfo 存储。

System_CAPS_pubpropertyObjectType

返回要序列化对象的类型。

名称说明
System_CAPS_pubmethodAddValue(String, Boolean)

添加到一个布尔值 SerializationInfo 存储。

System_CAPS_pubmethodAddValue(String, Byte)

将添加到一个 8 位无符号的整数值 SerializationInfo 存储。

System_CAPS_pubmethodAddValue(String, Char)

将添加到一个 Unicode 字符值 SerializationInfo 存储。

System_CAPS_pubmethodAddValue(String, DateTime)

添加 DateTime 值到 SerializationInfo 存储。

System_CAPS_pubmethodAddValue(String, Decimal)

添加到一个十进制值 SerializationInfo 存储。

System_CAPS_pubmethodAddValue(String, Double)

添加到一个双精度浮点值 SerializationInfo 存储。

System_CAPS_pubmethodAddValue(String, Int16)

添加到一个 16 位有符号的整数值 SerializationInfo 存储。

System_CAPS_pubmethodAddValue(String, Int32)

添加到一个 32 位有符号的整数值 SerializationInfo 存储。

System_CAPS_pubmethodAddValue(String, Int64)

添加到一个 64 位有符号的整数值 SerializationInfo 存储。

System_CAPS_pubmethodAddValue(String, Object)

添加到指定的对象 SerializationInfo 存储区,其中是与指定名称相关联。

System_CAPS_pubmethodAddValue(String, Object, Type)

添加到一个值 SerializationInfo 存储,其中 value 与关联 name 并序列化为 Typetype

System_CAPS_pubmethodAddValue(String, SByte)

将添加到一个 8 位有符号的整数值 SerializationInfo 存储。

System_CAPS_pubmethodAddValue(String, Single)

添加到一个单精度浮点值 SerializationInfo 存储。

System_CAPS_pubmethodAddValue(String, UInt16)

添加到一个 16 位无符号的整数值 SerializationInfo 存储。

System_CAPS_pubmethodAddValue(String, UInt32)

添加到一个 32 位无符号的整数值 SerializationInfo 存储。

System_CAPS_pubmethodAddValue(String, UInt64)

添加到一个 64 位无符号的整数值 SerializationInfo 存储。

System_CAPS_pubmethodEquals(Object)

确定指定的对象是否等于当前对象。(继承自 Object。)

System_CAPS_pubmethodGetBoolean(String)

检索一个布尔值,从 SerializationInfo 存储。

System_CAPS_pubmethodGetByte(String)

检索从 8 位无符号的整数值 SerializationInfo 存储。

System_CAPS_pubmethodGetChar(String)

检索从一个 Unicode 字符值 SerializationInfo 存储。

System_CAPS_pubmethodGetDateTime(String)

检索 DateTime 值从 SerializationInfo 存储。

System_CAPS_pubmethodGetDecimal(String)

检索一个十进制值,从 SerializationInfo 存储。

System_CAPS_pubmethodGetDouble(String)

检索从一个双精度浮点值 SerializationInfo 存储。

System_CAPS_pubmethodGetEnumerator()

返回 SerializationInfoEnumerator 用于循环访问中的名称 / 值对 SerializationInfo 存储。

System_CAPS_pubmethodGetHashCode()

作为默认哈希函数。(继承自 Object。)

System_CAPS_pubmethodGetInt16(String)

检索一个 16 位有符号的整数值,从 SerializationInfo 存储。

System_CAPS_pubmethodGetInt32(String)

检索一个 32 位有符号的整数值,从 SerializationInfo 存储。

System_CAPS_pubmethodGetInt64(String)

检索一个 64 位有符号的整数值,从 SerializationInfo 存储。

System_CAPS_pubmethodGetSByte(String)

检索从 8 位有符号的整数值 SerializationInfo 存储。

System_CAPS_pubmethodGetSingle(String)

检索从一个单精度浮点值 SerializationInfo 存储。

System_CAPS_pubmethodGetString(String)

检索 String 值从 SerializationInfo 存储。

System_CAPS_pubmethodGetType()

获取当前实例的 Type(继承自 Object。)

System_CAPS_pubmethodGetUInt16(String)

检索一个 16 位无符号的整数值,从 SerializationInfo 存储。

System_CAPS_pubmethodGetUInt32(String)

检索一个 32 位无符号的整数值,从 SerializationInfo 存储。

System_CAPS_pubmethodGetUInt64(String)

检索一个 64 位无符号的整数值,从 SerializationInfo 存储。

System_CAPS_pubmethodGetValue(String, Type)

检索一个值,从 SerializationInfo 存储。

System_CAPS_pubmethodSetType(Type)

Type 要序列化的对象。

System_CAPS_pubmethodToString()

返回表示当前对象的字符串。(继承自 Object。)

此类可供具有自定义序列化行为的对象。 GetObjectData 方法在任何一个 ISerializableISerializationSurrogate 填充 SerializationInfo 存储的名称、 类型和值的每个要序列化的信息。 在反序列化,相应的函数可以提取此信息。

对象添加到 SerializationInfo 存储在序列化时使用 AddValue 方法和从提取 SerializationInfo 存储在反序列化使用 GetValue 方法。

有关自定义序列化的详细信息,请参阅 自定义序列化

下面的代码示例演示 SerializationInfo 进行自定义序列化和反序列化的各种不同的值。

using System;
using System.Text;
using System.IO;
// Add references to Soap and Binary formatters.
using System.Runtime.Serialization.Formatters.Binary;
using System.Runtime.Serialization.Formatters.Soap ;
using System.Runtime.Serialization;


[Serializable]
public class MyItemType : ISerializable
{
    public MyItemType()
    {
        // Empty constructor required to compile.
    }

    // The value to serialize.
    private string myProperty_value;

    public string MyProperty
    {
        get { return myProperty_value; }
        set { myProperty_value = value; }
    }

    // Implement this method to serialize data. The method is called 
    // on serialization.
    public void GetObjectData(SerializationInfo info, StreamingContext context)
    {
        // Use the AddValue method to specify serialized values.
        info.AddValue("props", myProperty_value, typeof(string));

    }

    // The special constructor is used to deserialize values.
    public MyItemType(SerializationInfo info, StreamingContext context)
    {
        // Reset the property value using the GetValue method.
        myProperty_value = (string) info.GetValue("props", typeof(string));
    }
}

// This is a console application. 
public static class Test
{
    static void Main()
    {
        // This is the name of the file holding the data. You can use any file extension you like.
        string fileName = "dataStuff.myData";

        // Use a BinaryFormatter or SoapFormatter.
        IFormatter formatter = new BinaryFormatter();
        //IFormatter formatter = new SoapFormatter();

        Test.SerializeItem(fileName, formatter); // Serialize an instance of the class.
        Test.DeserializeItem(fileName, formatter); // Deserialize the instance.
        Console.WriteLine("Done");
        Console.ReadLine();
    }

    public static void SerializeItem(string fileName, IFormatter formatter)
    {
        // Create an instance of the type and serialize it.
        MyItemType t = new MyItemType();
        t.MyProperty = "Hello World";

        FileStream s = new FileStream(fileName , FileMode.Create);
        formatter.Serialize(s, t);            
        s.Close();
    }


    public static void DeserializeItem(string fileName, IFormatter formatter)
    {
        FileStream s = new FileStream(fileName, FileMode.Open);
        MyItemType t = (MyItemType)formatter.Deserialize(s);
        Console.WriteLine(t.MyProperty);            
    }       
}

.NET Framework
自 1.1 起可用

此类型的所有公共静态(Visual Basic 中的 已共享 在 Visual Basic 中)成员都是线程安全的。不保证所有实例成员都是线程安全的。

返回页首
显示: