У меня есть класс с байтовым массивом в качестве атрибута в виде двоичного файла
[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 содержат строку, а не байт [] (но другие файлы делаютиметь действительный байт [] тоже). Я не могу изменить данные входного файла и не могу изменить атрибут на строку, это должен быть байт [] для других обработанных файлов. Есть ли способ сделать пользовательское преобразование во время этого процесса десериализации каким-либо образом во время использования кода только для этого поля, если вход является строкой, чтобы выполнить пользовательское преобразование в byte [] с использованием логики? Таким образом, это не исключение и не получить класс.