【发布时间】:2021-10-15 00:20:47
【问题描述】:
您好,我定义了需要从对象序列化的 xml 格式。 我的 XML 看起来像:
<PerfCheckConsidered>
<PerfMarker PercentageIncrease="21.4171662006946" MaxValue="6650.55" MinValue="5477.438" TS_09082021093913="5961.733" TS_09082021093646="6650.55" TS_09082021093358="5477.438" TS_09082021093136="5510.135" TS_09082021092614="5768.742" PerfMarkerName="Marker1"/>
<PerfMarker PercentageIncrease="20.9911157408996" MaxValue="7371.881" MinValue="6092.911" TS_09082021093913="7371.881" TS_09082021093646="6092.911" TS_09082021093358="6345.139" TS_09082021093136="6289.624" TS_09082021092614="6782.205" PerfMarkerName="Marker1"/>
<PerfMarker PercentageIncrease="9.22930544021455" MaxValue="6183.199" MinValue="5660.751" TS_09082021093913="6183.199" TS_09082021093646="5660.751" TS_09082021093358="6000.608" TS_09082021093136="5951.08" TS_09082021092614="5870.288" PerfMarkerName="Marker1"/>
<PerfMarker PercentageIncrease="25.0711884164738" MaxValue="10075.0518" MinValue="8055.4538" TS_09082021093913="10062.1176" TS_09082021093646="10061.7749" TS_09082021093358="10075.0518" TS_09082021093136="8055.4538" TS_09082021092614="10063.9758" PerfMarkerName="Marker2"/>
<PerfMarker PercentageIncrease="13.2855819181415" MaxValue="8250.0617" MinValue="7282.5346" TS_09082021093913="8237.9737" TS_09082021093646="8245.9522" TS_09082021093358="8240.958" TS_09082021093136="8250.0617" TS_09082021092614="7282.5346" PerfMarkerName="Marker2"/>
<PerfMarker PercentageIncrease="29.7888969731873" MaxValue="50.4823" MinValue="38.8957" TS_09082021093913="50.4823" TS_09082021093646="46.8748" TS_09082021093358="38.8959" TS_09082021093136="38.8957" TS_09082021092614="40.8915" PerfMarkerName="Marker3"/>
<PerfMarker PercentageIncrease="54.5326940955576" MaxValue="16.9544" MinValue="10.9714" TS_09082021093913="11.9676" TS_09082021093646="12.9662" TS_09082021093358="16.9544" TS_09082021093136="10.9714" TS_09082021092614="10.9714" PerfMarkerName="Marker3"/>
<PerfMarker PercentageIncrease="14.028196761682" MaxValue="64.8256" MinValue="56.8505" TS_09082021093913="60.8377" TS_09082021093646="62.8326" TS_09082021093358="56.8505" TS_09082021093136="59.2591" TS_09082021092614="64.8256" PerfMarkerName="Marker3"/>
<PerfMarker PercentageIncrease="8.33604893089013" MaxValue="25.9311" MinValue="23.9358" TS_09082021093913="25.9311" TS_09082021093646="23.9358" TS_09082021093358="25.93" TS_09082021093136="25.9306" TS_09082021092614="24.9344" PerfMarkerName="Marker3"/>
</PerfCheckConsidered>
在上面的 XML 中,TagName 像 TS_09082021093913,TS_09082021093646,TS_09082021093136,TS_09082021092614 在编译时是未知的,这些是由本地磁盘中存在的文件名形成的时间戳名称。
我应该如何定义我的对象结构来填充这种数据
当前类看起来像(从这个结构中我无法获得所需的 xml 格式)
public class PerfCheck
{
public string PerfMarkerName { get; set; }
public string PercentageIncrease { get; set; }
public string MaxValue { get; set; }
public string MinValue { get; set; }
public string Marker { get; set; }
public List<TimeStampToInstances> TimeStampToMarkerValues { get; set;
}
[Serializable]
public class TimeStampToInstances
{
public string TimeStamp { get; set; }
public List<double> InstancesValues { get; set; }
}
目前我正在使用我的自定义逻辑来形成 XML,但我被告知使用普通的 xml 序列化并尝试修改类结构以适应 xml 格式 这可能吗?
【问题讨论】:
-
请参阅:XmlAnyAttributeAttribute - 但是,您的类似乎与显示的 xml 没有任何共同之处
-
到目前为止,我的值低于 List
- TS_09082021093913,TS_09082021093646,TS_09082021093136,TS_09082021092614。但是使用这种类结构,我无法实现所需的 XML 格式。那么有没有办法将当前的类结构序列化为显示的 xml 格式? -
现有的类?不,没有——至少,不是通过标准的内置库处理
标签: c# xml xml-serialization