c# - 在 SQL C# 中将对象序列化和反序列化为 varbinary
问题描述
我找不到这个问题的答案
实际上我是一个使用 C# Windows 应用程序的卡片设计师我想将用户卡片保存到数据库中,所以首先我获取了所有卡片属性并尝试对其进行序列化并将其放在字节数组中。这是将卡片保存到字节数组并对其进行序列化的代码。
public byte[] SaveAsByte()
{
//Save this card in a file
SerializedCard sc = new SerializedCard();
BinaryFormatter formatter = new BinaryFormatter();
Stream stream = new System.IO.MemoryStream();
sc.CardWidth = this.CardWidth;
sc.CardHeight = this.CardHeight;
sc.BackCard = this.backCard;
sc.FrontCard = this.frontCard;
formatter.Serialize(stream, sc);
var arry = ConvertToArry(stream);
stream.Close();
this.NeedSave = false;
return arry;
}
private byte[] ConvertToArry(Stream input)
{
byte[] buffer = new byte[16 * 1024];
using (MemoryStream ms = new MemoryStream())
{
int read;
while ((read = input.Read(buffer, 0, buffer.Length)) > 0)
{
ms.Write(buffer, 0, read);
}
return ms.ToArray();
}
}
我的第一个问题是,每当我将任何流对象转换为字节数组并尝试获取数组大小时,结果为零???我无法理解。序列化过程有什么问题吗?
任何人都可以帮忙吗?
解决方案
推荐阅读
- batch-file - for循环内批处理脚本中的子字符串计算
- xcode - Xcode:如何将“新二进制文件”上传到 App Store Connect?
- php - 使用 laravel 上传多个文件
- css - 如何忽略容器的宽度,向右溢出,而不破坏页面?
- python - 屏幕上的 Python Turtle 中心龟
- regex - 正则表达式排除带有点和 0 位的数字
- javascript - 这些异步方法声明之间有什么区别?
- reactjs - 使用 React CDN 时如何使用 material-ui 的 Autocomplete 组件
- kubernetes - 带有边车日志容器的 Cronjob 没有退出代码
- sybase - 使用 BCP 将数据导入 sybase 表失败并出现溢出错误