How to deserialize xml for an object in C # if some xml is missing in xml

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();
///added some code
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.

+3
source share
1 answer
 public class MyClass
 {
   [XmlElement(IsNullable = true)]
   public string Group;
   }
+3
source

All Articles