Пример #1
0
 protected override void WriteContentsTo(XmlWriter writer)
 {
     if (reader_extension != null)
     {
         // It is messy, but it somehow skips the wrapper element...
         var xr = extension.GetReader();
         if (xr.IsEmptyElement)
         {
             xr.Read();
         }
         else
         {
             xr.ReadStartElement();                      // skip it
             while (xr.NodeType != XmlNodeType.EndElement)
             {
                 writer.WriteNode(xr, false);
             }
             xr.ReadEndElement();
         }
     }
     else
     {
         extension.WriteTo(writer);
     }
 }
Пример #2
0
        // does not write start element or type attribute, writes other attributes and rest of content
        protected override void WriteContentsTo(XmlWriter writer)
        {
            if (writer == null)
            {
                throw new ArgumentNullException(nameof(writer));
            }
            if (_extension != null)

            {
                _extension.WriteTo(writer);
            }
            else if (_contentBuffer != null)
            {
                using (XmlDictionaryReader reader = _contentBuffer.GetReader(0))
                {
                    reader.MoveToStartElement();
                    if (!reader.IsEmptyElement)
                    {
                        reader.ReadStartElement();
                        while (reader.Depth >= 1 && reader.ReadState == ReadState.Interactive)
                        {
                            writer.WriteNode(reader, false);
                        }
                    }
                }
            }
        }
Пример #3
0
 static string ExtensionToString(SyndicationElementExtension extension)
 {
     StringBuilder sb = new StringBuilder();
     XmlWriterSettings xws = new XmlWriterSettings();
     xws.ConformanceLevel = ConformanceLevel.Fragment;
     xws.Indent = true;
     xws.Encoding = Encoding.ASCII;
     XmlWriter xw = XmlWriter.Create(sb, xws);
     XmlDictionaryWriter xdw = XmlDictionaryWriter.CreateDictionaryWriter(xw);
     extension.WriteTo(xdw);
     xdw.Close();
     return sb.ToString();
 }
		public void WriteToTwice_Reader ()
		{
			string xml = "<root><child /><child2 /></root>";
			StringWriter sw = new StringWriter ();
			using (XmlWriter w = GetWriter (sw)) {
				XmlReader r = XmlReader.Create (new StringReader (xml));
				r.Read ();
				r.Read (); // at child
				SyndicationElementExtension x = new SyndicationElementExtension (r);
				w.WriteStartElement ("root");
				x.WriteTo (w);
				x.WriteTo (w); // it is VALID.
				w.WriteEndElement ();
			}
			Assert.AreEqual ("<root><child></child><child></child></root>", sw.ToString ());
		}
Пример #5
0
 protected override void WriteContentsTo(XmlWriter writer)
 {
     extension.WriteTo(writer);
 }