我在c#中进行应用程序.在该应用程序中,我有包含十六进制值的字节数组.
在这里,我将数据作为一个大端,但我希望它作为一个小端.
这里我使用的Bitconverter.toInt32方法将该值转换为整数.
但我的问题是,在转换值之前,我必须将该4字节数据从源字节数组复制到临时数组中,然后反转该临时字节数组.
我不能反转源数组,因为它也包含其他数据.
因为我的应用程序变得缓慢.代码这里我有一个字节的源数组作为waveData [].它包含很多数据.
byte[] tempForTimestamp=new byte[4];
tempForTimestamp[0] = waveData[290];
tempForTimestamp[1] = waveData[289];
tempForTimestamp[2] = waveData[288];
tempForTimestamp[3] = waveData[287];
int number = BitConverter.ToInt32(tempForTimestamp, 0);
Run Code Online (Sandbox Code Playgroud)
该转换还有其他方法吗?
内置的基于BinaryFormatter的.Net序列化有哪些不足之处?(性能,灵活性,限制)
如果可能的话,请附上一些代码.
例:
要序列化的自定义对象必须使用[Serializable]属性进行修饰或实现ISerializable接口.
不太明显的例子:
匿名类型无法序列化.
假设我有一个BinaryFomatter包含序列化对象的文件.现在我希望能够在现有文件上序列化另一个对象和APPEND.
我该怎么做?
我有一个文件,需要在创建新对象时序列化同一个类的多个对象.我无法将它们存储在数组中,因为我需要将对象创建的实例序列化它们.请帮我.
我得到了Protobuf-net的源代码,它将一个对象序列化为一个文件.
var person = new Person {
Id = 12345, Name = "Fred",
Address = new Address {
Line1 = "Flat 1",
Line2 = "The Meadows"
}
};
using (var file = File.Create("person.bin")) {
ProtoBuf.Serializer.Serialize(file, person);
}
Run Code Online (Sandbox Code Playgroud)
但是假设我有两个Person实例,我想将其序列化为单个文件.我怎样才能做到这一点?
c# ×5
.net ×2
bytearray ×1
endianness ×1
file ×1
json ×1
json.net ×1
ndjson ×1
object ×1
protobuf-net ×1