gpt4 book ai didi

c# - 如何在 C# 中通过 XML 序列化输出十六进制数?

转载 作者:太空狗 更新时间:2023-10-29 22:55:28 26 4
gpt4 key购买 nike

我有几个类和结构,我使用 XML 序列化来保存和调用数据,但我想要的一个功能是以十六进制表示形式输出整数。我可以在这些结构上附加任何属性来实现这一点吗?

最佳答案

有一点代码味道,但以下起作用:

public class ViewAsHex
{
[XmlIgnore]
public int Value { get; set; }

[XmlElement(ElementName="Value")]
public string HexValue
{
get
{
// convert int to hex representation
return Value.ToString("x");
}
set
{
// convert hex representation back to int
Value = int.Parse(value,
System.Globalization.NumberStyles.HexNumber);
}
}
}

在控制台程序中测试类:

public class Program
{
static void Main(string[] args)
{
var o = new ViewAsHex();
o.Value = 258986522;

var xs = new XmlSerializer(typeof(ViewAsHex));

var output = Console.OpenStandardOutput();
xs.Serialize(output, o);

Console.WriteLine();
Console.WriteLine("Press enter to exit.");
Console.ReadLine();
}
}

结果:

<?xml version="1.0"?>
<ViewAsHex xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Value>f6fd21a</Value>
</ViewAsHex>

关于c# - 如何在 C# 中通过 XML 序列化输出十六进制数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3840803/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com