XmlWriter,使用数值写入枚举和布尔值
本文关键字:枚举 布尔值 XmlWriter | 更新日期: 2023-09-27 18:30:16
我想写出一系列XML元素。这些值大多是枚举或布尔值。我想使用数值而不是字符串名称来表示这些枚举和布尔值。(主要是因为我已经写了这样做的阅读部分)
我不知道该怎么做。
对象类
public class ApplicationConfiguration
{
public OperationalMode OperationalMode { get; set; }
public bool MuteMedia { get; set; }
public Stretch MediaStretch { get; set; }
public DisplayMode DisplayMode { get; set; }
public bool BlankSecondMonitor { get; set; }
public String RemoteUri { get; set; }
}
XML 编写器部件
writer.WriteElementString("OperationalMode", configuration.OperationalMode.ToString());
writer.WriteElementString("MuteMedia",configuration.MuteMedia.ToString());
writer.WriteElementString("MediaStretch",configuration.MediaStretch.ToString());
writer.WriteElementString("DisplayMode",configuration.DisplayMode.ToString());
writer.WriteElementString("BlankSecondMonitor",configuration.BlankSecondMonitor.ToString();
writer.WriteElementString("RemoteUri",configuration.RemoteUri);
上面写出枚举字符串名称和"真"或"假"。
我想使用数值,我不知道怎么做。
谢谢
对于枚举值,只需在转换为字符串之前转换为整数:
writer.WriteElementString("MediaStretch",
((int)configuration.MediaStretch).ToString());
对于布尔值,这是不可能的,所以如果你想要 0/1 的值,你可以使用条件运算符:
writer.WriteElementString("MuteMedia",configuration.MuteMedia ? "1" : "0");
将枚举值转换为 int
并转换为字符串:
((int)configuration.MediaStretch).ToString(CultureInfo.InvariantCulture)
而不是configuration.MediaStretch.ToString()
请注意,数字格式是特定于区域性的 - 对于从文件(如 XML)读取/写入文本数据的所有情况传递区域性(通常为 InvariantCulture
)。
您还可以使用 Convert.ToInt32 来实现您想要的枚举和布尔值。
writer.WriteElementString("OperationalMode", Convert.ToInt32(configuration.OperationalMode).ToString());
writer.WriteElementString("MuteMedia", Convert.ToInt32(configuration.MuteMedia).ToString());