gpt4 book ai didi

C# 二进制序列化

转载 作者:行者123 更新时间:2023-11-30 15:49:30 24 4
gpt4 key购买 nike

我正在尝试将对象序列化和反序列化到字节数组或从字节数组反序列化以进行网络通信,我目前有一个接口(interface)“ISerialize”。然而,我开始认为应该有一种更强大的方法来通过反射来做到这一点。

我仔细查看了一下使用 BinaryFormater 执行此操作的方法,但我看不出它是否会给我所需的控制权。

编辑:

我希望能够装饰一个类如下(其中字段可以是任何类型,只要它们是系统类型或者也是 [Serializable])

[Serializable]
public class MyClass {

[NonSerialized]
SomeOtherClass _classFeild;

[Position (0)]
UInt16 _field1;

[Position (14)]
UInt32 _feild2;

//..........
}

并具有以下功能,

void Test () {
MyObject = new MyClass ();
Byte[] raw;
raw = Serializer.Serialize (MyClass); // Results in _field1 at raw[0,1]
// _field2 at raw[14-18]

MyClass Deserialized = Serializer.Deserialize<MyClass> (raw);
}

所有字段交换到/从网络顺序(bigendian)


我也宁愿将白名单字段序列化,而不是将不序列化的字段列入黑名单。所以问题是,我可以使用框架来完成这项工作,还是需要编写自己的实现?

最佳答案

听起来很适合 BinaryWriterBitConverter .

关于C# 二进制序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1541614/

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