C#如何提高序列化的传输效率,就是让传输过程尽量少传些没用的字节,提高传输效率。
DeployTest("将对象转换为字节数组",@"将对象转换为字节数组",newstring[]{"","对象"},newParameterSrurct[]{(Para...
DeployTest("将对象转换为字节数组", @"将对象转换为字节数组",
new string[] { "", "对象" },
new ParameterSrurct[]
{
(ParameterSrurct) new string[]{"","a"}
},
delegate(ParameterSrurct parameter)
{
byte[] result = SundryClass.Object_BytesClass.ObjectToBytes(parameter.s[1]);
parameter.s[0] = result.ToString();
});
我可能不太理解就是在这个测试里字节数组的长度为25,让它实现传1个字节就够了(a). 展开
new string[] { "", "对象" },
new ParameterSrurct[]
{
(ParameterSrurct) new string[]{"","a"}
},
delegate(ParameterSrurct parameter)
{
byte[] result = SundryClass.Object_BytesClass.ObjectToBytes(parameter.s[1]);
parameter.s[0] = result.ToString();
});
我可能不太理解就是在这个测试里字节数组的长度为25,让它实现传1个字节就够了(a). 展开
1个回答
展开全部
用二进制序列化,别用XML。
既然你的需求这么迫切,可以尝试自己编写特别省空间的特定于你自己的类的序列化算法,不要用系统自带的二进制序列化。
举个例子你就明白思路了。比如你有一个类
class Foo
{
public int MyInt1{get;set;}
}
那么你用一个整数就能表示这个类了,如果MyInt是1,你就用1表示它。很节省吧。
你的想法办不到。去掉不想传的字节就不能反序列化了,除非你自己写序列化、凡序列化方法,就像我上面说的。
然而你可以转换思维,用一些压缩算法先压缩,反序列话以前解压缩,这是可行的。
既然你的需求这么迫切,可以尝试自己编写特别省空间的特定于你自己的类的序列化算法,不要用系统自带的二进制序列化。
举个例子你就明白思路了。比如你有一个类
class Foo
{
public int MyInt1{get;set;}
}
那么你用一个整数就能表示这个类了,如果MyInt是1,你就用1表示它。很节省吧。
你的想法办不到。去掉不想传的字节就不能反序列化了,除非你自己写序列化、凡序列化方法,就像我上面说的。
然而你可以转换思维,用一些压缩算法先压缩,反序列话以前解压缩,这是可行的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询