Вы можете реализовать полностью настраиваемую сериализацию, но это, вероятно, немного для этого.Как насчет предоставления свойства MyIntegerAsHex
, которое возвращает целое число в виде строки, отформатированной в виде шестнадцатеричного числа: MyInteger.ToString("X");
Свойству потребуется установщик, даже если это вычисляемое поле, так что строка из сериализованного объекта может бытьподается в новый экземпляр при десериализации.
Затем можно реализовать обратный вызов десериализации или просто поместить код в установщик, который будет анализировать шестнадцатеричное число в десятичное целое число при десериализации объекта: MyInteger = int.Parse(IntegerAsHex, NumberStyles.AllowHexNumber);
Итак, в итоге ваше свойство будет выглядеть примерно так:
public string MyIntegerAsHex
{
get { return MyInteger.ToString("X"); }
set { MyInteger = int.Parse(value, NumberStyles.AllowHexNumber); }
}
Затем, если вы не хотите видеть число в виде десятичного целого числа в файле XML, просто пометьтеэто с помощью [XmlIgnore].