XML Serialization empty collections not self closi

2019-07-31 02:55发布

Wondering if anyone can help me with this annoying but trivial (in terms of need) question. I have an object which has inside it a collection of object

 public class OuterClass
  {
    InnerClasses innerClasses= new InnerClasses();
     public InnerClasses InnerClasses
    {
      get {return innerClasses; }
    }
    public string Name
   {
     get;set;
   }
  }

  public class InnerClasses:List<InnerClass>
  {

  }
  public class <InnerClass>
  {

  }

basically my problem I'm experiencing is that if I pass it through an xml serializer

    var outer = new OuterClass(){Name="Name"}
    var xmlSerializer = new XmlSerializer(GetType());
    var stringBuilder = new StringBuilder();
    var stringWriter = new StringWriter(stringBuilder);    
    xmlSerializer.Serialize(stringWriter, this);
    return stringBuilder.ToString();

I'm wondering why when I have no inner classes it puts out

<OuterClass>
 <Name>Name</Name>
 <InnerClasses ></InnerClasses>
</OuterClass>

why does it not put InnerClasses as a self closed tag ?

I realize the code above will put but I can't put the full actual code listing. (not much use I know) I'm just looking for pointers as to what could cause it.

I can't for the life of me work out why it's not doing this by default.

Many thanks for any input as to where to look.

1条回答
姐就是有狂的资本
2楼-- · 2019-07-31 03:21

I've noticed the same thing all the time, but as far as I've found it's just the way the Serialization class was implemented. They simply chose to not use self closing tags. Hopefully this will be changed in future implementations.

查看更多
登录 后发表回答