在 .NET 中将结构转换为字节数组
我希望使用 My.Computer.FileSystem.WriteAllBytes 等将由固定长度字符串组成的结构写入文件。
我正在使用带有固定长度字符串的 VB6 项目,我已将其转换为 VB.Net。
Structure Record
<VBFixedString(22),System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.ByValArray,SizeConst:=22)> Public tim() As Char
<VBFixedString(130),System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.ByValArray,SizeConst:=130)> Public des() As Char
<VBFixedString(2),System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.ByValArray,SizeConst:=2)> Public crlf() As Char
End Structure
对于 C# 中的编组仍然是新手,但我如何将此结构获取到字节数组以写入文件。是否有一些编组技巧或者我必须编写自定义方法?
I wish to write a structure made up of fixed length strings to a file using My.Computer.FileSystem.WriteAllBytes or the like.
I am using a VB6 project with fixed length strings that I have converted in to VB.Net.
Structure Record
<VBFixedString(22),System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.ByValArray,SizeConst:=22)> Public tim() As Char
<VBFixedString(130),System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.ByValArray,SizeConst:=130)> Public des() As Char
<VBFixedString(2),System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.ByValArray,SizeConst:=2)> Public crlf() As Char
End Structure
Still new to marshalling in C#, but how would I get this structure to an array of bytes to write to a file. Is there some marshalling trick or am I going to have to write a custom method?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
使用 .NET 框架提供的序列化机制:
您应该向您的类型添加
属性。Use serialization mechanisms provided by the .NET framework:
You should add
<Serializable()>
attribute to your type.