在.NET中将结构转换为字节数组

时间:2009-08-17 16:21:23

标签: vb.net marshalling bytearray

我希望使用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#中编组还是新手,但是如何将这个结构放到一个字节数组中来写入文件。是否有一些编组技巧或我是否必须编写自定义方法?

1 个答案:

答案 0 :(得分:5)

使用.NET框架提供的序列化机制:

Dim formatter As New BinaryFormatter
formatter.Serialize(outputFileStream, objectInstance)

您应该为您的类型添加<Serializable()>属性。