簡體   English   中英

.NET中的序列化

[英]Serialization in .NET

我的任務是序列化和反序列化對象。

我想知道:

  • 我的對象是否以執行方式序列化
  • 我如何知道我的對象正在序列化或反序列化

我沒有傳遞Serialize方法中的對象,而是傳遞了object.properties 這會以任何方式影響它嗎?

FileStream fs = new FileStream(@"D:\Rough Work\Serialization\Serialization\bin\Debug\Log.txt",FileMode.OpenOrCreate);
Laptop obj = new Laptop();
obj.Model = 2;
obj.SerialNumber = 4;
BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize(fs, obj.Model);
formatter.Serialize(fs, obj.SerialNumber);

[Serializable]
class Laptop
{
    public int Model;
    public int SerialNumber;
}
  • 如果可以成功反序列化對象,則可以正確序列化它。
  • 您無需單獨序列化屬性。 您可以序列化整個對象並以相同的方式反序列化它。

     using (var fs = new FileStream(@"D:\\Rough Work\\Serialization\\Serialization\\bin\\Debug\\Log.txt",FileMode.OpenOrCreate)) { var formatter = new BinaryFormatter(); formatter.Serialize(fs, obj); } using (var fs = new FileStream(@"D:\\Rough Work\\Serialization\\Serialization\\bin\\Debug\\Log.txt",FileMode.OpenOrCreate)) { var formatter = new BinaryFormatter(); obj = formatter.Deserialize(fs) as Laptop; } 

如果您的問題是筆記本電腦類如何知道它正在被序列化,那么您可能想要實現ISerializable接口。

請參見BinaryFormatter.Deserialize

您可以將序列化的方法轉換為字符串,並將其輸出到調試窗口

我想知道:我的對象是否以執行方式序列化

然后,您可以使用xml序列化,以這種方式可以檢查序列化的對象,因為它是人類可讀的形式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM