public override void Merge(ICSharpFileElement ele)
 {
     if (ele is CSharpClass)
     {
         var clsObj = ele as CSharpClass;
         foreach (var prop in clsObj.Children)
         {
             this.Children.Add(prop);
         }
     }
 }
 public override void Merge(ICSharpFileElement additionalContent)
 {
     // TODO: merge summary?
     if (additionalContent is CSharpNamespace)
     {
         foreach (var ele in additionalContent.Children)
         {
             ICSharpFileElement existing;
             if (this.Children.TryGetValue(ele.Key, out existing))
             {
                 existing.Merge(ele.Value);
             }
             else
             {
                 this.Children.Add(ele);
             }
         }
     }
 }
 public virtual void Merge(ICSharpFileElement ele)
 {
 }