c#serializable
时间: 2024-11-13 10:15:05 浏览: 14
在C#中,`Serializable`特性用于标记可以进行序列化的类。当一个类实现了`Serializable`,其对象可以通过`System.Runtime.Serialization.Formatters.Binary.BinaryFormatter`或其他序列化机制(如XMLSerializer)进行保存到流(如文件或网络传输),并在需要时恢复成原始状态[^2]。
以下是使用`Serializable`进行序列化的简单示例:
1. 定义一个可序列化的类`MyObject`,例如:
```csharp
[Serializable] // 添加此属性表明该类支持序列化
public class MyObject
{
public string Data { get; set; }
// 其他成员...
}
```
2. 创建并序列化对象:
```csharp
MyObject obj = new MyObject { Data = "Some data" };
using (MemoryStream fromStream = new MemoryStream())
{
BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize(fromStream, obj);
// 序列化后的数据存储在fromStream中
}
```
3. 反序列化:
```csharp
BinaryFormatter formatter = new BinaryFormatter();
MyObject deserializedObj;
using (MemoryStream toStream = new MemoryStream(fromStream.ToArray()))
{
deserializedObj = (MyObject)formatter.Deserialize(toStream);
// deserializedObj现在包含了与原始对象相同的值
}
```
阅读全文