本文為機器翻譯文章。如需檢視英文版,請選取 [原文] 核取方塊。您也可以將滑鼠指標移到文字上,即可在快顯視窗顯示英文原文。
譯文
原文

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)

新增 DateTimeSerializationInfo 儲存。

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 存放區,其中 valuename 以及序列化為 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)

擷取 DateTimeSerializationInfo 儲存。

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)

擷取 StringSerializationInfo 儲存。

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 起供應

此類型的任何 public static (在 Visual Basic 中 共用 在 Visual Basic 中) 成員皆為安全執行緒。不保證任何執行個體成員為安全執行緒。

回到頁首
顯示: