Tôi nhận được một mảng byte, tôi cần phải unmarshal nó để C# struct. Tôi biết loại cấu trúc, nó có một số trường chuỗi. Các chuỗi trong mảng byte xuất hiện như sau: hai byte đầu tiên là độ dài của chuỗi, sau đó là chuỗi. Tôi không biết chiều dài của chuỗi. Tôi biết rằng mã Unicode của nó!Làm thế nào để cấu trúc nguyên soái với các trường chuỗi dài chưa biết trong C#
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public class User
{
int Id;//should be 1
String UserName;//should be OFIR
String FullName;//should be OFIR
}
mảng byte trông giống như vậy: 00,00,01,00, 00,00,08,00, 4F, 00,46,00,49,00,52,00, 00,00,08,00, 4F, 00,46,00,49,00,52,00,
tôi cũng tìm thấy liên kết này với cùng một vấn đề chưa được giải quyết: loading binary data into a structure
Cảm ơn tất cả các bạn, Ofir
Ofir, các chỉnh sửa được đề xuất không có nghĩa là phương tiện liên lạc, nếu bạn muốn thêm nhận xét hoặc mở rộng câu hỏi của mình, hãy thoải mái. –
Làm thế nào để bạn nhận được 1 từ mảng byte? Một 'int' là 4 byte, sẽ là' {00, 00, 01, 00} ', không phải là 1. – Amy
Vui lòng xem 'câu trả lời' của tôi. Tôi cần thêm thông tin. Biết mảng byte là không đủ. Cấu trúc gốc trông như thế nào? – Amy