From: Daniel C. \(kzu\) <dca...@us...> - 2005-05-28 20:14:51
|
Update of /cvsroot/mvp-xml/Common/v1/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10497/v1/src Modified Files: XmlFirstLowerWriter.cs XmlFirstUpperReader.cs XmlFragmentStream.cs XmlNamespaces.cs XmlNodeFactory.cs XmlNodeListFactory.cs changelog.txt Log Message: Edited my email. Added Create(object value) to XmlNodeFactory. See http://weblogs.asp.net/cazzu/posts/xmlmessageperformance.aspx. Index: XmlNodeListFactory.cs =================================================================== RCS file: /cvsroot/mvp-xml/Common/v1/src/XmlNodeListFactory.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- XmlNodeListFactory.cs 14 Nov 2004 01:24:29 -0000 1.2 +++ XmlNodeListFactory.cs 28 May 2005 20:14:41 -0000 1.3 @@ -14,7 +14,7 @@ /// <see cref="XPathNodeIterator"/> objects. /// </summary> /// <remarks>See http://weblogs.asp.net/cazzu/archive/2004/04/14/113479.aspx. - /// <para>Author: Daniel Cazzulino, kz...@as...</para> + /// <para>Author: Daniel Cazzulino, kz...@gm...</para> /// </remarks> public sealed class XmlNodeListFactory { Index: XmlNodeFactory.cs =================================================================== RCS file: /cvsroot/mvp-xml/Common/v1/src/XmlNodeFactory.cs,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- XmlNodeFactory.cs 27 Sep 2004 16:27:12 -0000 1.1 +++ XmlNodeFactory.cs 28 May 2005 20:14:41 -0000 1.2 @@ -1,13 +1,10 @@ -#region using - using System; using System.Xml; +using System.Xml.Serialization; using System.Xml.XPath; using Mvp.Xml.Common.XPath; -#endregion using - namespace Mvp.Xml.Common { /// <summary> @@ -20,8 +17,9 @@ /// methods, as they are intended for use only for serialization, and to avoid /// <see cref="XmlDocument"/> loading for fast performance. All other members /// will throw an <see cref="NotSupportedException"/>. - /// <para>Author: Daniel Cazzulino, kz...@as...</para> - /// See: http://weblogs.asp.net/cazzu/archive/2004/05/31/144922.aspx. + /// <para>Author: Daniel Cazzulino, kz...@gm...</para> + /// See: http://weblogs.asp.net/cazzu/archive/2004/05/31/144922.aspx and + /// http://weblogs.asp.net/cazzu/posts/XmlMessagePerformance.aspx. /// </remarks> public class XmlNodeFactory { @@ -30,22 +28,33 @@ #region Create overloads /// <summary> - /// Creates an <see cref="XmlDocument"/> serializable + /// Creates an <see cref="XmlNode"/> wrapper for any object, + /// to be serialized through the <see cref="XmlSerializer"/>. + /// </summary> + /// <param name="value">The object to wrap.</param> + /// <returns>A node that can only be used for XML serialization.</returns> + public static XmlNode Create(object value) + { + return new ObjectNode(value); + } + + /// <summary> + /// Creates an <see cref="XmlNode"/> serializable /// wrapper for an <see cref="XPathNavigator"/>. /// </summary> /// <param name="navigator">The navigator to wrap.</param> - /// <returns>A document that can only be used for XML serialization.</returns> + /// <returns>A node that can only be used for XML serialization.</returns> public static XmlNode Create(XPathNavigator navigator) { return new XPathNavigatorNode(navigator); } /// <summary> - /// Creates an <see cref="XmlDocument"/> serializable + /// Creates an <see cref="XmlNode"/> serializable /// wrapper for an <see cref="XmlReader"/>. /// </summary> /// <param name="reader">The reader to wrap.</param> - /// <returns>A document that can only be used for XML serialization.</returns> + /// <returns>A node that can only be used for XML serialization.</returns> /// <remarks> /// After serialization, the reader is automatically closed. /// </remarks> @@ -311,5 +320,27 @@ } #endregion XmlReaderNode + + #region ObjectNode + + private class ObjectNode : SerializableNode + { + private object serializableObject; + + public ObjectNode() {} + + public ObjectNode(object serializableObject) + { + this.serializableObject = serializableObject; + } + + public override void WriteTo(XmlWriter w) + { + XmlSerializer ser = new XmlSerializer(serializableObject.GetType()); + ser.Serialize(w, serializableObject); + } + } + + #endregion XmlReaderNode } } Index: XmlFragmentStream.cs =================================================================== RCS file: /cvsroot/mvp-xml/Common/v1/src/XmlFragmentStream.cs,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- XmlFragmentStream.cs 27 Sep 2004 16:27:12 -0000 1.1 +++ XmlFragmentStream.cs 28 May 2005 20:14:41 -0000 1.2 @@ -15,7 +15,7 @@ /// <remarks>A faked root element is added at the stream /// level to enclose the fragments, which can be customized /// using the overloaded constructors. - /// <para>Author: Daniel Cazzulino, kz...@as...</para> + /// <para>Author: Daniel Cazzulino, kz...@gm...</para> /// See: http://weblogs.asp.net/cazzu/archive/2004/04/23/119263.aspx. /// </remarks> public class XmlFragmentStream : Stream Index: changelog.txt =================================================================== RCS file: /cvsroot/mvp-xml/Common/v1/src/changelog.txt,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- changelog.txt 4 Jan 2005 09:39:25 -0000 1.3 +++ changelog.txt 28 May 2005 20:14:41 -0000 1.4 @@ -1,3 +1,10 @@ +May 28, 2005 + +Added ObjectNode to XmlNodeFactory to improve performance of client-side message-based communication with web services through XmlSerializer. +See: http://weblogs.asp.net/cazzu/posts/xmlmessageperformance.aspx + +--------------------------------------------------------- + January 04, 2005 Added Serialization folder and classes. Index: XmlFirstLowerWriter.cs =================================================================== RCS file: /cvsroot/mvp-xml/Common/v1/src/XmlFirstLowerWriter.cs,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- XmlFirstLowerWriter.cs 27 Sep 2004 16:27:12 -0000 1.1 +++ XmlFirstLowerWriter.cs 28 May 2005 20:14:41 -0000 1.2 @@ -15,7 +15,7 @@ /// </summary> /// <remarks> /// To be used in conjunction with <see cref="XmlFirstUpperReader"/>. - /// <para>Author: Daniel Cazzulino, kz...@as...</para> + /// <para>Author: Daniel Cazzulino, kz...@gm...</para> /// See http://weblogs.asp.net/cazzu/archive/2004/05/10/129106.aspx. /// </remarks> public class XmlFirstLowerWriter : XmlTextWriter Index: XmlNamespaces.cs =================================================================== RCS file: /cvsroot/mvp-xml/Common/v1/src/XmlNamespaces.cs,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- XmlNamespaces.cs 27 Sep 2004 16:27:12 -0000 1.1 +++ XmlNamespaces.cs 28 May 2005 20:14:41 -0000 1.2 @@ -9,7 +9,7 @@ /// <summary> /// Provides public constants for wellknown XML namespaces. /// </summary> - /// <remarks>Author: Daniel Cazzulino, kz...@as...</remarks> + /// <remarks>Author: Daniel Cazzulino, kz...@gm...</remarks> public sealed class XmlNamespaces { #region Ctor Index: XmlFirstUpperReader.cs =================================================================== RCS file: /cvsroot/mvp-xml/Common/v1/src/XmlFirstUpperReader.cs,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- XmlFirstUpperReader.cs 27 Sep 2004 16:27:12 -0000 1.1 +++ XmlFirstUpperReader.cs 28 May 2005 20:14:41 -0000 1.2 @@ -15,7 +15,7 @@ /// <remarks> /// To be used in conjunction with <see cref="XmlFirstLowerWriter"/> for /// serialization. - /// <para>Author: Daniel Cazzulino, kz...@as...</para> + /// <para>Author: Daniel Cazzulino, kz...@gm...</para> /// See http://weblogs.asp.net/cazzu/archive/2004/05/10/129106.aspx. /// </remarks> public class XmlFirstUpperReader : XmlTextReader |