小编Ila*_*man的帖子

如何在C#中使用XmlSerializer将字节数组序列化为XML?

假设我们有一个结构,它的数据由使用Marshal.PtrToStructure的非托管字节数组提供.

C#结构布局:

[StructLayout(LayoutKind.Sequential, Size = 128, CharSet = CharSet.Ansi, Pack = 1)]
public struct MNG_Y_Params
{
    public byte Number;
    public byte Version;
    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)]
    public byte[] OliNumber;
    public byte InterfaceType;
}
Run Code Online (Sandbox Code Playgroud)

字节数组表示未托管代码中的(ascii)字符串.

此结构是另一个结构的成员(具有一些其他成员):

public struct MyData
{
    public int ID;
    public StructType structType;
    [XmlElement(ElementName="MNG_Y_Params")]
    public MNG_Y_Params y_params;
    [XmlElement(ElementName = "SimpleStruct2")]
    public SimpleStruct2 ss2;
};
Run Code Online (Sandbox Code Playgroud)

所以我们也有这个支持代码

public class XMLIgnore
{
    static public XmlSerializer customserialiser(MyData d)
    {
        XmlAttributes attrs = new XmlAttributes();
        attrs.XmlIgnore = true;
        XmlAttributeOverrides xmlOveride = new XmlAttributeOverrides(); …
Run Code Online (Sandbox Code Playgroud)

c# xml serialization unmanaged

13
推荐指数
1
解决办法
2万
查看次数

标签 统计

c# ×1

serialization ×1

unmanaged ×1

xml ×1