gpt4 book ai didi

c# - 数据数组的自定义序列化

转载 作者:太空宇宙 更新时间:2023-11-03 20:29:00 25 4
gpt4 key购买 nike

我有一个问题:

    protected Test(SerializationInfo info, StreamingContext context)
{
sx = info.GetUInt16("sizex");
sy = info.GetUInt16("sizey");
sz = info.GetUInt16("sizez");
ushort[] tab = new ushort[sx * sy * sz];
tab = info.GetValue("data", System.UInt16[sx * sy * sz]);
Console.WriteLine("Deserializing constructor");
}
[SecurityPermissionAttribute(SecurityAction.Demand, SerializationFormatter = true)]

public void GetObjectData(SerializationInfo info, StreamingContext context)
{
Console.WriteLine("Serializing...");
info.AddValue("sizex", sx);
info.AddValue("sizey", sy);
info.AddValue("sizez", sz);
info.AddValue("data", tab);
}

我收到一个编译时错误:“ushort”是一个“类型”,它在给定的上下文中无效。我应该改变什么?

最佳答案

info.GetValue 需要一个类型,因此您不包括数组的大小,而是用 typeof 包装它。此外,ushort[] tab = new ushort[sx * sy * sz]; 是不必要的。

ushort[] tab = (ushort[])info.GetValue("data", typeof(ushort[]));

关于c# - 数据数组的自定义序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8610169/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com