c#字节数组xml序列化
我有一个字节数组c#字节数组xml序列化,c#,xml-serialization,bytearray,C#,Xml Serialization,Bytearray,我有一个字节数组 public byte[] values; 我用数据填充它 new byte[64]; 我将其序列化,得到以下XML部分: <values> AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== </values> 现在我得到了与上面相同的XML,只是用“0”而不是“A” 当我序列化例如Int16/Int32/sbyte数组时
public byte[] values;
我用数据填充它
new byte[64];
我将其序列化,得到以下XML部分:
<values>
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
</values>
现在我得到了与上面相同的XML,只是用“0”而不是“A”
当我序列化例如Int16/Int32/sbyte数组时。我在XML中得到了如下内容:
<values>0</values>
<values>0</values>
<values>0</values>
0
0
0
垂直排列
现在我的问题是:是否有可能获得垂直排列的字节数组?比如:
00
00
00
Mark我想您必须为数组中的每个字节显式地创建一个新的XML元素。您最好使用
列表
或数组
,而不是原始数组
正如美国共和党在评论中所说的那样
如果尝试序列化列表时出错,则表明您做错了。发布代码,也许我们可以提供帮助。公共类测试
public class Test
{
public List<byte> Bytes { get; set; }
}
var xml = new XmlSerializer(typeof(Test));
xml.Serialize(File.Open("test.xml",FileMode.OpenOrCreate),
new Test
{
Bytes = new List<byte> {0,1,2,3,4,5,6,7}
});
{
公共列表字节{get;set;}
}
var xml=新的XmlSerializer(typeof(Test));
序列化(File.Open(“test.xml”,FileMode.OpenOrCreate),
新测试
{
字节=新列表{0,1,2,3,4,5,6,7}
});
结果生成一个xml文件,如:
<?xml version="1.0"?>
<Test xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Bytes>
<unsignedByte>0</unsignedByte>
<unsignedByte>1</unsignedByte>
<unsignedByte>2</unsignedByte>
<unsignedByte>3</unsignedByte>
<unsignedByte>4</unsignedByte>
<unsignedByte>5</unsignedByte>
<unsignedByte>6</unsignedByte>
<unsignedByte>7</unsignedByte>
</Bytes>
</Test>
0
1.
2.
3.
4.
5.
6.
7.
您是否尝试序列化列表我尝试序列化列表时出错。我认为那是不可能的。“反映类型“…”时出错。抱歉:我没有删除数据类型Xml标记。它起作用了!这张单子正是我要找的。谢谢你的ajp。我提到你说过:)谢谢,我已经在上面评论过了,我没有删除DataType=heyBinary部分。
public class Test
{
public List<byte> Bytes { get; set; }
}
var xml = new XmlSerializer(typeof(Test));
xml.Serialize(File.Open("test.xml",FileMode.OpenOrCreate),
new Test
{
Bytes = new List<byte> {0,1,2,3,4,5,6,7}
});
<?xml version="1.0"?>
<Test xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Bytes>
<unsignedByte>0</unsignedByte>
<unsignedByte>1</unsignedByte>
<unsignedByte>2</unsignedByte>
<unsignedByte>3</unsignedByte>
<unsignedByte>4</unsignedByte>
<unsignedByte>5</unsignedByte>
<unsignedByte>6</unsignedByte>
<unsignedByte>7</unsignedByte>
</Bytes>
</Test>