public XmlDictionaryReader GetReaderAtHeader(int index) { if (index >= l.Count) { throw new ArgumentOutOfRangeException(String.Format("Index is out of range. Current header count is {0}", index)); } MessageHeader item = (MessageHeader)l [index]; XmlReader reader = item is MessageHeader.RawMessageHeader ? ((MessageHeader.RawMessageHeader)item).CreateReader() : XmlReader.Create( new StringReader(item.ToString()), reader_settings); reader.MoveToContent(); XmlDictionaryReader dr = XmlDictionaryReader.CreateDictionaryReader(reader); dr.MoveToContent(); return(dr); }