C# 添加到列表时从对象转换为字节[]
我正在制作一个ASP MVC web应用程序,我正在尝试从SQLite数据库加载图像,将它们添加到列表中,并在我的视图中显示它们 在我的模型中,我有这样一个图像:C# 添加到列表时从对象转换为字节[],c#,asp.net-mvc,C#,Asp.net Mvc,我正在制作一个ASP MVC web应用程序,我正在尝试从SQLite数据库加载图像,将它们添加到列表中,并在我的视图中显示它们 在我的模型中,我有这样一个图像: public Byte Image { get; set; } public List<ImageModel> Images { get; set; } using (SQLiteDataReader rdr = cmd.ExecuteReader()) {
public Byte Image { get; set; }
public List<ImageModel> Images { get; set; }
using (SQLiteDataReader rdr = cmd.ExecuteReader())
{
while (rdr.Read())
{
list.Add(new ImageModel
{
Image = "data:image/png;base64," + Convert.ToBase64String(rdr["image"]) // error
});
}
rdr.Close();
Images = list;
}
我试着阅读它,并像这样添加它:
public Byte Image { get; set; }
public List<ImageModel> Images { get; set; }
using (SQLiteDataReader rdr = cmd.ExecuteReader())
{
while (rdr.Read())
{
list.Add(new ImageModel
{
Image = "data:image/png;base64," + Convert.ToBase64String(rdr["image"]) // error
});
}
rdr.Close();
Images = list;
}
公共列表图像{get;set;}
使用(SQLiteDataReader rdr=cmd.ExecuteReader())
{
while(rdr.Read())
{
列表。添加(新的ImageModel
{
Image=“data:Image/png;base64,”+Convert.ToBase64String(rdr[“Image”])//错误
});
}
rdr.Close();
图像=列表;
}
但它给了我一个“无法从对象转换为字节[]”。关于我如何处理这个问题,有什么提示吗
public static byte[] Serialize(object obj)
{
var binaryFormatter = new BinaryFormatter();
var ms = new MemoryStream();
binaryFormatter.Serialize(ms, obj);
return ms.ToArray();
}
然后
Image = "data:image/png;base64," + Convert.ToBase64String(Serialize(rdr["image"]))
对于反序列化:
public static object Deserialize(byte[] data)
{
var binaryFormatter = new BinaryFormatter();
return binaryFormatter.Deserialize(new MemoryStream(data));
}
啊,谢谢。这确实让我更接近了,但在我序列化字符串并将其添加到列表的行中,我得到了一个“不能隐式地将类型字符串转换为字节[]”。将模型中的类型从字节更改为字符串也没有帮助,因为这样它只会在视图中输出一个巨大的字符串。