gpt4 book ai didi

c# - 如何将 xml 反序列化为 C# 中的对象,如果 xml 中缺少某些 xml

转载 作者:数据小太阳 更新时间:2023-10-29 02:06:27 24 4
gpt4 key购买 nike

我有一个 xml 有效载荷,有很多可用的 xml 元素,我已经在类属性中声明了所有元素,当我尝试序列化它时它随所有节点一起出现,这里我在反序列化之前删除了一些 xml 元素,然后我正在尝试反序列化 xml,这里出现错误。

是否可以在没有声明元素的情况下进行反序列化?我需要在没有某些元素的情况下反序列化。因为反序列化 xml 负载是动态的,所以它来自另一个供应商。请帮助我。

代码块:

类:

[Serializable]
public class CSSngSectorCable
{
[XmlElement("cableID")]
public Int32 CSSngCableId { get; set; }
public string RFDSSection { get; set; }
public string RFDSSector { get; set; }
public Int32 RFDSCableNumber { get; set; }
[XmlElement("cableNumber")]
public string CSSngCableNumber { get; set; }

[XmlElement("feederType")]
public string CSSngFeederType { get; set; }
[XmlElement("feederLength")]
public string CSSngFeederLength { get; set; }
public int CableRowNumber { get; set; }
}

序列化代码:

var cables= new SectorCable();
///added some code
string serializevalue = SerializationHelper.SerializeToXml(cables, true);

序列化输出:

<cable>
<cableID>1</cableID>
<cableNumber>2</cableNumber>
<feederType>15.24</feederType>
<feederLength></feederLength>
</cable>

要反序列化的数据:

<cable>
<cableID>1</cableID>
<cableNumber>2</cableNumber>
</cable>

反序列化代码:

public CSSngSectorCable GetCableFromDynamicXML(StreamReader reader)
{
try
{
var serializer = new XmlSerializer(typeof(CSSngSectorCable));
var cables = (CSSngSectorCable)serializer.Deserialize(reader);
return cables;
}
catch (Exception ex)
{
throw;
}

这里它不能正常工作,它会抛出异常。如何解决问题。

最佳答案

 public class MyClass
{
[XmlElement(IsNullable = true)]
public string Group;
}

关于c# - 如何将 xml 反序列化为 C# 中的对象,如果 xml 中缺少某些 xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21604936/

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