I had one xml payload, there are many xml elements available, I declared all the elements in the class properties, when I tried to serialize, came with all the nodes. Here I deleted some xml elements before deserializing, then I try to deserialize xml, an error occurs here.
Is it possible to deserialize without declared elements? I need to deserialize without some elements. Because the xml deserialization payload is dynamic, it comes from another vendor. Please help me.
The code:
Grade:
[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; }
}
Code for serialization:
var cables= new SectorCable();
string serializevalue = SerializationHelper.SerializeToXml(cables, true);
Serialized output:
<cable>
<cableID>1</cableID>
<cableNumber>2</cableNumber>
<feederType>15.24</feederType>
<feederLength></feederLength>
</cable>
Data for deserialization:
<cable>
<cableID>1</cableID>
<cableNumber>2</cableNumber>
</cable>
Code for deserialization:
public CSSngSectorCable GetCableFromDynamicXML(StreamReader reader)
{
try
{
var serializer = new XmlSerializer(typeof(CSSngSectorCable));
var cables = (CSSngSectorCable)serializer.Deserialize(reader);
return cables;
}
catch (Exception ex)
{
throw;
}
Here it does not work perfectly, it throws an exception. How to solve the problem.
source
share