Hie.Core.Model.XmlDisassembler.NextMessage C# (CSharp) 메소드

NextMessage() 공개 메소드

public NextMessage ( ) : Message
리턴 Message
		public Message NextMessage()
		{
			if (_stream.Position == _stream.Length) return null;

			// This implementation doesn't really do that much since
			// it doesn't do envelope splitting yet. 
			var message = new Message("text/xml");

			// Change this to use XmlReader in order to set the original encoding of the stream
			// Actually, this string representation should really go away in the end. Message.Value 
			// doesn't have a place in the future.
			XmlDocument document = new XmlDocument();
			document.Load(_stream);
			message.SetValueFrom(document.OuterXml);

			return message;
		}
	}

Usage Example

예제 #1
0
		public void DisassembleXmlFromEndpointTest()
		{
			// Goal: Send in bytes (from stream) and get an XML document out
			var disassembler = new XmlDisassembler();

			XDocument document = new XDocument(new XElement("body",
				new XElement("level1",
					new XElement("level2", "text"),
					new XElement("level2", "other text"))));
			document.Declaration = new XDeclaration("1.0", "UTF-8", "yes");

			byte[] data = Encoding.GetEncoding(document.Declaration.Encoding).GetBytes(document.ToString());

			disassembler.Disassemble(data);
			Message message = disassembler.NextMessage();

			Assert.IsNull(disassembler.NextMessage(), "Expected only one message back");

			Assert.IsNotNull(message);
			Assert.IsNotNull(message.Stream);
			Assert.IsTrue(XNode.DeepEquals(document, XDocument.Parse(message.GetString())));
			Assert.IsTrue(XNode.DeepEquals(document, XDocument.Load(message.GetStream())));

			// Move these to MessageTest instead
			Assert.IsTrue(XNode.DeepEquals(document, message.RetrieveAs<XDocument>()));
			Assert.IsTrue(XNode.DeepEquals(document, message.RetrieveAs<XNode>()));
			Assert.IsTrue(XNode.DeepEquals(document, XDocument.Parse(message.RetrieveAs<XmlDocument>().OuterXml)));
		}
All Usage Examples Of Hie.Core.Model.XmlDisassembler::NextMessage