C# 序列化 反序列化

复制代码
/// <summary>
/// 序列化
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="obj"></param>
/// <returns></returns>
private static byte[]? Serialize<T>(T? obj)
{
    if (obj == null)
        return default;
    using var memoryStream = new MemoryStream();
    DataContractSerializer ser = new(typeof(T));
    ser.WriteObject(memoryStream, obj);
    var data = memoryStream.ToArray();
    return data;
}

/// <summary>
/// 反序列化
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="data"></param>
/// <returns></returns>
private static T? Deserialize<T>(byte[]? data)
{
    if (data == null)
        return default;
    using var memoryStream = new MemoryStream(data);
    XmlDictionaryReader reader = XmlDictionaryReader.CreateTextReader(memoryStream, new XmlDictionaryReaderQuotas());
    DataContractSerializer ser = new(typeof(T));
    var result = (T?)ser.ReadObject(reader, true);
    return result;
}
复制代码

 

posted @   Mr_Xul  阅读(20)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
点击右上角即可分享
微信分享提示