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>