【发布时间】:2019-10-28 20:06:03
【问题描述】:
我有一个字节数组作为二进制属性的类
[System.Xml.Serialization.XmlAttributeAttribute(DataType="hexBinary")]
public byte[] aValue {
get {
return this.aValueField;
}
set {
this.aValueField= value;
}
}
数据本身...对于 aValue...在我试图在某些文件中反序列化的 XML 文件中有一个字符串 .
为了反序列化我这样做:
XmlSerializer xml = new XmlSerializer(typeof(Data));
using (Stream reader = new FileStream(file, FileMode.Open))
{
config = (Data)xml.Deserialize(reader);
}
问题是,XML 文件中的数据有一个字符串,没有一个字节[](但其他文件也有一个有效的字节[])。我不能更改输入文件数据,也不能将属性更改为字符串,对于处理的其他文件,它必须是字节 []。有没有办法在这个反序列化过程中以某种方式在通过代码期间进行自定义转换,如果输入是字符串,使用逻辑对字节 [] 进行自定义转换?这样它就不会异常,也不会得到类。
【问题讨论】:
-
所以有时是二进制,有时是字符串?你能在编辑中展示两者的例子吗?
-
它会像“0000000000000000”或“你好!” (你好!需要先转成二进制)
标签: c# .net serialization