private void Write110_NamedFilter(string n, string ns, NamedFilter o, bool isNullable, bool needType)
 {
     if (o == null)
     {
         if (isNullable)
         {
             base.WriteNullTagLiteral(n, ns);
         }
     }
     else
     {
         if (!needType)
         {
             System.Type type = o.GetType();
             if (type != typeof(NamedFilter))
             {
                 if (type == typeof(VirtualHighligher))
                 {
                     this.Write114_VirtualHighligher(n, ns, (VirtualHighligher) o, isNullable, true);
                     return;
                 }
                 if (type != typeof(ListViewHighlighter))
                 {
                     throw base.CreateUnknownTypeException(o);
                 }
                 this.Write115_ListViewHighlighter(n, ns, (ListViewHighlighter) o, isNullable, true);
                 return;
             }
         }
         base.WriteStartElement(n, ns, o, false, null);
         if (needType)
         {
             base.WriteXsiType("NamedFilter", "");
         }
         if (o.SerializableFilter != null)
         {
             if (o.SerializableFilter is VirtualItemSizeFilter)
             {
                 this.Write98_VirtualItemSizeFilter("SizeFilter", "", (VirtualItemSizeFilter) o.SerializableFilter, false, false);
             }
             else if (o.SerializableFilter is VirtualItemDateFilter)
             {
                 this.Write99_VirtualItemDateFilter("DateFilter", "", (VirtualItemDateFilter) o.SerializableFilter, false, false);
             }
             else if (o.SerializableFilter is VirtualItemHexContentFilter)
             {
                 this.Write105_VirtualItemHexContentFilter("HexContentFilter", "", (VirtualItemHexContentFilter) o.SerializableFilter, false, false);
             }
             else if (o.SerializableFilter is VirtualItemTimeFilter)
             {
                 this.Write91_VirtualItemTimeFilter("TimeFilter", "", (VirtualItemTimeFilter) o.SerializableFilter, false, false);
             }
             else if (o.SerializableFilter is VirtualItemContentFilter)
             {
                 this.Write87_VirtualItemContentFilter("ContentFilter", "", (VirtualItemContentFilter) o.SerializableFilter, false, false);
             }
             else if (o.SerializableFilter is VirtualItemAttributeFilter)
             {
                 this.Write94_VirtualItemAttributeFilter("AttributeFilter", "", (VirtualItemAttributeFilter) o.SerializableFilter, false, false);
             }
             else if (o.SerializableFilter is VirtualItemNameFilter)
             {
                 this.Write103_VirtualItemNameFilter("NameFilter", "", (VirtualItemNameFilter) o.SerializableFilter, false, false);
             }
             else if (o.SerializableFilter is AggregatedVirtualItemFilter)
             {
                 this.Write108_AggregatedVirtualItemFilter("AggregatedFilter", "", (AggregatedVirtualItemFilter) o.SerializableFilter, false, false);
             }
             else if (o.SerializableFilter is VirtualPropertyFilter)
             {
                 this.Write84_VirtualPropertyFilter("PropertyFilter", "", (VirtualPropertyFilter) o.SerializableFilter, false, false);
             }
             else if (o.SerializableFilter is VirtualItemNameListFilter)
             {
                 this.Write107_VirtualItemNameListFilter("NameListFilter", "", (VirtualItemNameListFilter) o.SerializableFilter, false, false);
             }
             else if (o.SerializableFilter != null)
             {
                 throw base.CreateUnknownTypeException(o.SerializableFilter);
             }
         }
         base.WriteElementString("Name", "", o.Name);
         base.WriteEndElement(o);
     }
 }
 private NamedFilter Read110_NamedFilter(bool isNullable, bool checkType)
 {
     XmlQualifiedName type = checkType ? base.GetXsiType() : null;
     bool flag = false;
     if (isNullable)
     {
         flag = base.ReadNull();
     }
     if ((checkType && (type != null)) && ((type.Name != this.id57_NamedFilter) || (type.Namespace != this.id2_Item)))
     {
         if ((type.Name == this.id71_VirtualHighligher) && (type.Namespace == this.id2_Item))
         {
             return this.Read114_VirtualHighligher(isNullable, false);
         }
         if ((type.Name != this.id72_ListViewHighlighter) || (type.Namespace != this.id2_Item))
         {
             throw base.CreateUnknownTypeException(type);
         }
         return this.Read115_ListViewHighlighter(isNullable, false);
     }
     if (flag)
     {
         return null;
     }
     NamedFilter o = new NamedFilter();
     bool[] flagArray = new bool[2];
     while (base.Reader.MoveToNextAttribute())
     {
         if (!base.IsXmlnsAttribute(base.Reader.Name))
         {
             base.UnknownNode(o);
         }
     }
     base.Reader.MoveToElement();
     if (base.Reader.IsEmptyElement)
     {
         base.Reader.Skip();
         return o;
     }
     base.Reader.ReadStartElement();
     base.Reader.MoveToContent();
     int whileIterations = 0;
     int readerCount = base.ReaderCount;
     while ((base.Reader.NodeType != XmlNodeType.EndElement) && (base.Reader.NodeType != XmlNodeType.None))
     {
         if (base.Reader.NodeType == XmlNodeType.Element)
         {
             if ((!flagArray[0] && (base.Reader.LocalName == this.id176_AggregatedFilter)) && (base.Reader.NamespaceURI == this.id2_Item))
             {
                 o.SerializableFilter = this.Read108_AggregatedVirtualItemFilter(false, true);
                 flagArray[0] = true;
             }
             else if ((!flagArray[0] && (base.Reader.LocalName == this.id177_NameFilter)) && (base.Reader.NamespaceURI == this.id2_Item))
             {
                 o.SerializableFilter = this.Read103_VirtualItemNameFilter(false, true);
                 flagArray[0] = true;
             }
             else if ((!flagArray[0] && (base.Reader.LocalName == this.id178_PropertyFilter)) && (base.Reader.NamespaceURI == this.id2_Item))
             {
                 o.SerializableFilter = this.Read84_VirtualPropertyFilter(false, true);
                 flagArray[0] = true;
             }
             else if ((!flagArray[0] && (base.Reader.LocalName == this.id179_ContentFilter)) && (base.Reader.NamespaceURI == this.id2_Item))
             {
                 o.SerializableFilter = this.Read87_VirtualItemContentFilter(false, true);
                 flagArray[0] = true;
             }
             else if ((!flagArray[0] && (base.Reader.LocalName == this.id180_NameListFilter)) && (base.Reader.NamespaceURI == this.id2_Item))
             {
                 o.SerializableFilter = this.Read107_VirtualItemNameListFilter(false, true);
                 flagArray[0] = true;
             }
             else if ((!flagArray[0] && (base.Reader.LocalName == this.id181_HexContentFilter)) && (base.Reader.NamespaceURI == this.id2_Item))
             {
                 o.SerializableFilter = this.Read105_VirtualItemHexContentFilter(false, true);
                 flagArray[0] = true;
             }
             else if ((!flagArray[0] && (base.Reader.LocalName == this.id182_AttributeFilter)) && (base.Reader.NamespaceURI == this.id2_Item))
             {
                 o.SerializableFilter = this.Read94_VirtualItemAttributeFilter(false, true);
                 flagArray[0] = true;
             }
             else if ((!flagArray[0] && (base.Reader.LocalName == this.id183_SizeFilter)) && (base.Reader.NamespaceURI == this.id2_Item))
             {
                 o.SerializableFilter = this.Read98_VirtualItemSizeFilter(false, true);
                 flagArray[0] = true;
             }
             else if ((!flagArray[0] && (base.Reader.LocalName == this.id184_DateFilter)) && (base.Reader.NamespaceURI == this.id2_Item))
             {
                 o.SerializableFilter = this.Read99_VirtualItemDateFilter(false, true);
                 flagArray[0] = true;
             }
             else if ((!flagArray[0] && (base.Reader.LocalName == this.id185_TimeFilter)) && (base.Reader.NamespaceURI == this.id2_Item))
             {
                 o.SerializableFilter = this.Read91_VirtualItemTimeFilter(false, true);
                 flagArray[0] = true;
             }
             else if ((!flagArray[1] && (base.Reader.LocalName == this.id326_Name)) && (base.Reader.NamespaceURI == this.id2_Item))
             {
                 o.Name = base.Reader.ReadElementString();
                 flagArray[1] = true;
             }
             else
             {
                 base.UnknownNode(o, ":AggregatedFilter, :NameFilter, :PropertyFilter, :ContentFilter, :NameListFilter, :HexContentFilter, :AttributeFilter, :SizeFilter, :DateFilter, :TimeFilter, :Name");
             }
         }
         else
         {
             base.UnknownNode(o, ":AggregatedFilter, :NameFilter, :PropertyFilter, :ContentFilter, :NameListFilter, :HexContentFilter, :AttributeFilter, :SizeFilter, :DateFilter, :TimeFilter, :Name");
         }
         base.Reader.MoveToContent();
         base.CheckReaderCount(ref whileIterations, ref readerCount);
     }
     base.ReadEndElement();
     return o;
 }