You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4net-dev@logging.apache.org by ni...@apache.org on 2005/02/07 05:05:50 UTC

cvs commit: logging-log4net/src/Util PropertiesDictionary.cs ProtectCloseTextWriter.cs QuietTextWriter.cs ReadOnlyPropertiesDictionary.cs ReaderWriterLock.cs ReusableStringWriter.cs SystemInfo.cs TextWriterAdapter.cs ThreadContextList.cs ThreadContextLists.cs ThreadContextProperties.cs ThreadContextStack.cs ThreadContextStacks.cs Transform.cs WindowsSecurityContext.cs

nicko       2005/02/06 20:05:50

  Modified:    src/Util PropertiesDictionary.cs ProtectCloseTextWriter.cs
                        QuietTextWriter.cs ReadOnlyPropertiesDictionary.cs
                        ReaderWriterLock.cs ReusableStringWriter.cs
                        SystemInfo.cs TextWriterAdapter.cs
                        ThreadContextList.cs ThreadContextLists.cs
                        ThreadContextProperties.cs ThreadContextStack.cs
                        ThreadContextStacks.cs Transform.cs
                        WindowsSecurityContext.cs
  Log:
  Tidied up doc comments
  
  Revision  Changes    Path
  1.9       +75 -8     logging-log4net/src/Util/PropertiesDictionary.cs
  
  Index: PropertiesDictionary.cs
  ===================================================================
  RCS file: /home/cvs/logging-log4net/src/Util/PropertiesDictionary.cs,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- PropertiesDictionary.cs	17 Jan 2005 20:18:48 -0000	1.8
  +++ PropertiesDictionary.cs	7 Feb 2005 04:05:50 -0000	1.9
  @@ -29,8 +29,11 @@
   	/// String keyed object map.
   	/// </summary>
   	/// <remarks>
  -	/// Only member objects that are serializable will
  +	/// <para>
  +	/// While this collection is serializable only member 
  +	/// objects that are serializable will
   	/// be serialized along with this collection.
  +	/// </para>
   	/// </remarks>
   	/// <author>Nicko Cadell</author>
   	/// <author>Gert Driesen</author>
  @@ -43,16 +46,26 @@
   		#region Public Instance Constructors
   
   		/// <summary>
  -		/// Initializes a new instance of the <see cref="PropertiesDictionary" /> class.
  +		/// Constructor
   		/// </summary>
  +		/// <remarks>
  +		/// <para>
  +		/// Initializes a new instance of the <see cref="PropertiesDictionary" /> class.
  +		/// </para>
  +		/// </remarks>
   		public PropertiesDictionary()
   		{
   		}
   
   		/// <summary>
  -		/// Initializes a new instance of the <see cref="PropertiesDictionary" /> class.
  +		/// Constructor
   		/// </summary>
   		/// <param name="propertiesDictionary">properties to copy</param>
  +		/// <remarks>
  +		/// <para>
  +		/// Initializes a new instance of the <see cref="PropertiesDictionary" /> class.
  +		/// </para>
  +		/// </remarks>
   		public PropertiesDictionary(ReadOnlyPropertiesDictionary propertiesDictionary) : base(propertiesDictionary)
   		{
   		}
  @@ -69,7 +82,9 @@
   		/// <param name="info">The <see cref="SerializationInfo" /> that holds the serialized object data.</param>
   		/// <param name="context">The <see cref="StreamingContext" /> that contains contextual information about the source or destination.</param>
   		/// <remarks>
  +		/// <para>
   		/// Because this class is sealed the serialization constructor is private.
  +		/// </para>
   		/// </remarks>
   		private PropertiesDictionary(SerializationInfo info, StreamingContext context) : base(info, context)
   		{
  @@ -88,9 +103,11 @@
   		/// </value>
   		/// <param name="key">The key of the property to get or set.</param>
   		/// <remarks>
  +		/// <para>
   		/// The property value will only be serialized if it is serializable.
   		/// If it cannot be serialized it will be silently ignored if
   		/// a serialization operation is performed.
  +		/// </para>
   		/// </remarks>
   		override public object this[string key]
   		{
  @@ -106,6 +123,11 @@
   		/// Remove the entry with the specified key from this dictionary
   		/// </summary>
   		/// <param name="key">the key for the entry to remove</param>
  +		/// <remarks>
  +		/// <para>
  +		/// Remove the entry with the specified key from this dictionary
  +		/// </para>
  +		/// </remarks>
   		public void Remove(string key)
   		{
   			InnerHashtable.Remove(key);
  @@ -118,6 +140,12 @@
   		/// <summary>
   		/// See <see cref="IDictionary.GetEnumerator"/>
   		/// </summary>
  +		/// <returns>an enumerator</returns>
  +		/// <remarks>
  +		/// <para>
  +		/// Returns a <see cref="IDictionaryEnumerator"/> over the contest of this collection.
  +		/// </para>
  +		/// </remarks>
   		IDictionaryEnumerator IDictionary.GetEnumerator()
   		{
   			return InnerHashtable.GetEnumerator();
  @@ -126,7 +154,12 @@
   		/// <summary>
   		/// See <see cref="IDictionary.Remove"/>
   		/// </summary>
  -		/// <param name="key"></param>
  +		/// <param name="key">the key to remove</param>
  +		/// <remarks>
  +		/// <para>
  +		/// Remove the entry with the specified key from this dictionary
  +		/// </para>
  +		/// </remarks>
   		void IDictionary.Remove(object key)
   		{
   			InnerHashtable.Remove(key);
  @@ -135,8 +168,13 @@
   		/// <summary>
   		/// See <see cref="IDictionary.Contains"/>
   		/// </summary>
  -		/// <param name="key"></param>
  -		/// <returns></returns>
  +		/// <param name="key">the key to lookup in the collection</param>
  +		/// <returns><c>true</c> if the collection contains the specified key</returns>
  +		/// <remarks>
  +		/// <para>
  +		/// Test if this collection contains a specified key.
  +		/// </para>
  +		/// </remarks>
   		bool IDictionary.Contains(object key)
   		{
   			return InnerHashtable.Contains(key);
  @@ -145,6 +183,11 @@
   		/// <summary>
   		/// Remove all properties from the properties collection
   		/// </summary>
  +		/// <remarks>
  +		/// <para>
  +		/// Remove all properties from the properties collection
  +		/// </para>
  +		/// </remarks>
   		public override void Clear()
   		{
   			InnerHashtable.Clear();
  @@ -153,8 +196,14 @@
   		/// <summary>
   		/// See <see cref="IDictionary.Add"/>
   		/// </summary>
  -		/// <param name="key"></param>
  -		/// <param name="value"></param>
  +		/// <param name="key">the key</param>
  +		/// <param name="value">the value to store for the key</param>
  +		/// <remarks>
  +		/// <para>
  +		/// Store a value for the specified <see cref="String"/> <paramref name="key"/>.
  +		/// </para>
  +		/// </remarks>
  +		/// <exception cref="ArgumentException">Thrown if the <paramref name="key"/> is not a string</exception>
   		void IDictionary.Add(object key, object value)
   		{
   			if (!(key is string))
  @@ -167,6 +216,15 @@
   		/// <summary>
   		/// See <see cref="IDictionary.IsReadOnly"/>
   		/// </summary>
  +		/// <value>
  +		/// <c>false</c>
  +		/// </value>
  +		/// <remarks>
  +		/// <para>
  +		/// This collection is modifiable. This property always
  +		/// returns <c>false</c>.
  +		/// </para>
  +		/// </remarks>
   		bool IDictionary.IsReadOnly
   		{
   			get { return false; }
  @@ -175,6 +233,15 @@
   		/// <summary>
   		/// See <see cref="IDictionary.this"/>
   		/// </summary>
  +		/// <value>
  +		/// The value for the key specified.
  +		/// </value>
  +		/// <remarks>
  +		/// <para>
  +		/// Get or set a value for the specified <see cref="String"/> <paramref name="key"/>.
  +		/// </para>
  +		/// </remarks>
  +		/// <exception cref="ArgumentException">Thrown if the <paramref name="key"/> is not a string</exception>
   		object IDictionary.this[object key]
   		{
   			get
  
  
  
  1.5       +21 -3     logging-log4net/src/Util/ProtectCloseTextWriter.cs
  
  Index: ProtectCloseTextWriter.cs
  ===================================================================
  RCS file: /home/cvs/logging-log4net/src/Util/ProtectCloseTextWriter.cs,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- ProtectCloseTextWriter.cs	17 Jan 2005 20:18:48 -0000	1.4
  +++ ProtectCloseTextWriter.cs	7 Feb 2005 04:05:50 -0000	1.5
  @@ -28,8 +28,10 @@
   	/// A <see cref="TextWriter"/> that ignores the <see cref="Close"/> message
   	/// </summary>
   	/// <remarks>
  -	/// Used in special cases where it is necessary to protect a writer
  -	/// from being closed by a client.
  +	/// <para>
  +	/// This writer is used in special cases where it is necessary 
  +	/// to protect a writer from being closed by a client.
  +	/// </para>
   	/// </remarks>
   	/// <author>Nicko Cadell</author>
   	public class ProtectCloseTextWriter : TextWriterAdapter
  @@ -37,9 +39,14 @@
   		#region Public Instance Constructors
   
   		/// <summary>
  -		/// Create a new ProtectCloseTextWriter using a writer
  +		/// Constructor
   		/// </summary>
   		/// <param name="writer">the writer to actually write to</param>
  +		/// <remarks>
  +		/// <para>
  +		/// Create a new ProtectCloseTextWriter using a writer
  +		/// </para>
  +		/// </remarks>
   		public ProtectCloseTextWriter(TextWriter writer) : base(writer)
   		{
   		}
  @@ -52,6 +59,11 @@
   		/// Attach this instance to a different underlying <see cref="TextWriter"/>
   		/// </summary>
   		/// <param name="writer">the writer to attach to</param>
  +		/// <remarks>
  +		/// <para>
  +		/// Attach this instance to a different underlying <see cref="TextWriter"/>
  +		/// </para>
  +		/// </remarks>
   		public void Attach(TextWriter writer)
   		{
   			this.Writer = writer;
  @@ -64,6 +76,12 @@
   		/// <summary>
   		/// Does not close the underlying output writer.
   		/// </summary>
  +		/// <remarks>
  +		/// <para>
  +		/// Does not close the underlying output writer.
  +		/// This method does nothing.
  +		/// </para>
  +		/// </remarks>
   		override public void Close()
   		{
   			// do nothing
  
  
  
  1.5       +45 -6     logging-log4net/src/Util/QuietTextWriter.cs
  
  Index: QuietTextWriter.cs
  ===================================================================
  RCS file: /home/cvs/logging-log4net/src/Util/QuietTextWriter.cs,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- QuietTextWriter.cs	17 Jan 2005 20:18:48 -0000	1.4
  +++ QuietTextWriter.cs	7 Feb 2005 04:05:50 -0000	1.5
  @@ -24,9 +24,14 @@
   namespace log4net.Util
   {
   	/// <summary>
  -	/// QuietTextWriter does not throw exceptions when things go wrong. 
  -	/// Instead, it delegates error handling to its <see cref="IErrorHandler"/>.
  +	/// <see cref="TextWriter"/> that does not leak exceptions
   	/// </summary>
  +	/// <remarks>
  +	/// <para>
  +	/// <see cref="QuietTextWriter"/> does not throw exceptions when things go wrong. 
  +	/// Instead, it delegates error handling to its <see cref="IErrorHandler"/>.
  +	/// </para>
  +	/// </remarks>
   	/// <author>Nicko Cadell</author>
   	/// <author>Gert Driesen</author>
   	public class QuietTextWriter : TextWriterAdapter
  @@ -34,10 +39,15 @@
   		#region Public Instance Constructors
   
   		/// <summary>
  -		/// Create a new QuietTextWriter using a writer and error handler
  +		/// Constructor
   		/// </summary>
   		/// <param name="writer">the writer to actually write to</param>
   		/// <param name="errorHandler">the error handler to report error to</param>
  +		/// <remarks>
  +		/// <para>
  +		/// Create a new QuietTextWriter using a writer and error handler
  +		/// </para>
  +		/// </remarks>
   		public QuietTextWriter(TextWriter writer, IErrorHandler errorHandler) : base(writer)
   		{
   			if (errorHandler == null)
  @@ -52,12 +62,16 @@
   		#region Public Instance Properties
   
   		/// <summary>
  -		/// Gets or sets the error handler that all errors are 
  -		/// passed to.
  +		/// Gets or sets the error handler that all errors are passed to.
   		/// </summary>
   		/// <value>
   		/// The error handler that all errors are passed to.
   		/// </value>
  +		/// <remarks>
  +		/// <para>
  +		/// Gets or sets the error handler that all errors are passed to.
  +		/// </para>
  +		/// </remarks>
   		public IErrorHandler ErrorHandler
   		{
   			get { return m_errorHandler; }
  @@ -78,6 +92,11 @@
   		/// <value>
   		/// <c>true</c> if this writer is closed, otherwise <c>false</c>.
   		/// </value>
  +		/// <remarks>
  +		/// <para>
  +		/// Gets a value indicating whether this writer is closed.
  +		/// </para>
  +		/// </remarks>
   		public bool Closed
   		{
   			get { return m_closed; }
  @@ -90,7 +109,12 @@
   		/// <summary>
   		/// Writes a character to the underlying writer
   		/// </summary>
  -		/// <param name="value"></param>
  +		/// <param name="value">the char to write</param>
  +		/// <remarks>
  +		/// <para>
  +		/// Writes a character to the underlying writer
  +		/// </para>
  +		/// </remarks>
   		public override void Write(char value) 
   		{
   			try 
  @@ -109,6 +133,11 @@
   		/// <param name="buffer">the buffer to write</param>
   		/// <param name="index">the start index to write from</param>
   		/// <param name="count">the number of characters to write</param>
  +		/// <remarks>
  +		/// <para>
  +		/// Writes a buffer to the underlying writer
  +		/// </para>
  +		/// </remarks>
   		public override void Write(char[] buffer, int index, int count) 
   		{
   			try 
  @@ -125,6 +154,11 @@
   		/// Writes a string to the output.
   		/// </summary>
   		/// <param name="value">The string data to write to the output.</param>
  +		/// <remarks>
  +		/// <para>
  +		/// Writes a string to the output.
  +		/// </para>
  +		/// </remarks>
   		override public void Write(string value) 
   		{
   			try 
  @@ -140,6 +174,11 @@
   		/// <summary>
   		/// Closes the underlying output writer.
   		/// </summary>
  +		/// <remarks>
  +		/// <para>
  +		/// Closes the underlying output writer.
  +		/// </para>
  +		/// </remarks>
   		override public void Close()
   		{
   			m_closed = true;
  
  
  
  1.5       +54 -7     logging-log4net/src/Util/ReadOnlyPropertiesDictionary.cs
  
  Index: ReadOnlyPropertiesDictionary.cs
  ===================================================================
  RCS file: /home/cvs/logging-log4net/src/Util/ReadOnlyPropertiesDictionary.cs,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- ReadOnlyPropertiesDictionary.cs	17 Jan 2005 20:18:48 -0000	1.4
  +++ ReadOnlyPropertiesDictionary.cs	7 Feb 2005 04:05:50 -0000	1.5
  @@ -29,8 +29,14 @@
   	/// String keyed object map that is read only.
   	/// </summary>
   	/// <remarks>
  -	/// Only member objects that are serializable will
  +	/// <para>
  +	/// This collection is readonly and cannot be modified.
  +	/// </para>
  +	/// <para>
  +	/// While this collection is serializable only member 
  +	/// objects that are serializable will
   	/// be serialized along with this collection.
  +	/// </para>
   	/// </remarks>
   	/// <author>Nicko Cadell</author>
   	/// <author>Gert Driesen</author>
  @@ -52,16 +58,26 @@
   		#region Public Instance Constructors
   
   		/// <summary>
  -		/// Initializes a new instance of the <see cref="ReadOnlyPropertiesDictionary" /> class.
  +		/// Constructor
   		/// </summary>
  +		/// <remarks>
  +		/// <para>
  +		/// Initializes a new instance of the <see cref="ReadOnlyPropertiesDictionary" /> class.
  +		/// </para>
  +		/// </remarks>
   		public ReadOnlyPropertiesDictionary()
   		{
   		}
   
   		/// <summary>
  -		/// Initializes a new instance of the <see cref="ReadOnlyPropertiesDictionary" /> class.
  +		/// Copy Constructor
   		/// </summary>
   		/// <param name="propertiesDictionary">properties to copy</param>
  +		/// <remarks>
  +		/// <para>
  +		/// Initializes a new instance of the <see cref="ReadOnlyPropertiesDictionary" /> class.
  +		/// </para>
  +		/// </remarks>
   		public ReadOnlyPropertiesDictionary(ReadOnlyPropertiesDictionary propertiesDictionary)
   		{
   			foreach(DictionaryEntry entry in propertiesDictionary)
  @@ -76,11 +92,16 @@
   
   #if !NETCF
   		/// <summary>
  -		/// Initializes a new instance of the <see cref="ReadOnlyPropertiesDictionary" /> class 
  -		/// with serialized data.
  +		/// Deserialization constructor
   		/// </summary>
   		/// <param name="info">The <see cref="SerializationInfo" /> that holds the serialized object data.</param>
   		/// <param name="context">The <see cref="StreamingContext" /> that contains contextual information about the source or destination.</param>
  +		/// <remarks>
  +		/// <para>
  +		/// Initializes a new instance of the <see cref="ReadOnlyPropertiesDictionary" /> class 
  +		/// with serialized data.
  +		/// </para>
  +		/// </remarks>
   		protected ReadOnlyPropertiesDictionary(SerializationInfo info, StreamingContext context)
   		{
   			foreach(SerializationEntry entry in info)
  @@ -98,8 +119,12 @@
   		/// <summary>
   		/// Gets the key names.
   		/// </summary>
  -		/// <value>An array of key names.</value>
   		/// <returns>An array of all the keys.</returns>
  +		/// <remarks>
  +		/// <para>
  +		/// Gets the key names.
  +		/// </para>
  +		/// </remarks>
   		public string[] GetKeys()
   		{
   			string[] keys = new String[InnerHashtable.Count];
  @@ -115,9 +140,11 @@
   		/// </value>
   		/// <param name="key">The key of the property to get or set.</param>
   		/// <remarks>
  +		/// <para>
   		/// The property value will only be serialized if it is serializable.
   		/// If it cannot be serialized it will be silently ignored if
   		/// a serialization operation is performed.
  +		/// </para>
   		/// </remarks>
   		public virtual object this[string key]
   		{
  @@ -134,6 +161,11 @@
   		/// </summary>
   		/// <param name="key">the key to look for</param>
   		/// <returns>true if the dictionary contains the specified key</returns>
  +		/// <remarks>
  +		/// <para>
  +		/// Test if the dictionary contains a specified key
  +		/// </para>
  +		/// </remarks>
   		public bool Contains(string key)
   		{
   			return InnerHashtable.Contains(key);
  @@ -144,6 +176,14 @@
   		/// <summary>
   		/// The hashtable used to store the properties
   		/// </summary>
  +		/// <value>
  +		/// The internal collection used to store the properties
  +		/// </value>
  +		/// <remarks>
  +		/// <para>
  +		/// The hashtable used to store the properties
  +		/// </para>
  +		/// </remarks>
   		protected Hashtable InnerHashtable
   		{
   			get { return m_hashtable; }
  @@ -157,6 +197,11 @@
   		/// </summary>
   		/// <param name="info">The <see cref="SerializationInfo" /> to populate with data.</param>
   		/// <param name="context">The destination for this serialization.</param>
  +		/// <remarks>
  +		/// <para>
  +		/// Serializes this object into the <see cref="SerializationInfo" /> provided.
  +		/// </para>
  +		/// </remarks>
   		[System.Security.Permissions.SecurityPermissionAttribute(System.Security.Permissions.SecurityAction.Demand, SerializationFormatter=true)]
   		public virtual void GetObjectData(SerializationInfo info, StreamingContext context)
   		{
  @@ -166,7 +211,9 @@
   				if (entry.Value.GetType().IsSerializable)
   				{
   					// Store the keys as an Xml encoded local name as it may contain colons (':') 
  -					// which are not escaped by the Xml Serialization framework
  +					// which are NOT escaped by the Xml Serialization framework.
  +					// This must be a bug in the serialization framework as we cannot be expected
  +					// to know the implementation details of all the possible transport layers.
   					info.AddValue(XmlConvert.EncodeLocalName(entry.Key as string), entry.Value);
   				}
   			}
  
  
  
  1.5       +23 -10    logging-log4net/src/Util/ReaderWriterLock.cs
  
  Index: ReaderWriterLock.cs
  ===================================================================
  RCS file: /home/cvs/logging-log4net/src/Util/ReaderWriterLock.cs,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- ReaderWriterLock.cs	17 Jan 2005 20:18:48 -0000	1.4
  +++ ReaderWriterLock.cs	7 Feb 2005 04:05:50 -0000	1.5
  @@ -37,9 +37,9 @@
   	/// one-at-a-time lock, such as <see cref="System.Threading.Monitor"/>.
   	/// </para>
   	/// <para>
  -	/// If a platform does not support a ReaderWriterLock implementation 
  -	/// then all readers and writers are serialized. Therefore the caller
  -	/// must not rely on multiple simultaneous readers.
  +	/// If a platform does not support a <c>System.Threading.ReaderWriterLock</c> 
  +	/// implementation then all readers and writers are serialized. Therefore 
  +	/// the caller must not rely on multiple simultaneous readers.
   	/// </para>
   	/// </remarks>
   	/// <author>Nicko Cadell</author>
  @@ -48,8 +48,13 @@
   		#region Instance Constructors
   
   		/// <summary>
  -		/// Initializes a new instance of the <see cref="ReaderWriterLock" /> class.
  +		/// Constructor
   		/// </summary>
  +		/// <remarks>
  +		/// <para>
  +		/// Initializes a new instance of the <see cref="ReaderWriterLock" /> class.
  +		/// </para>
  +		/// </remarks>
   		public ReaderWriterLock()
   		{
   #if HAS_READERWRITERLOCK
  @@ -65,8 +70,10 @@
   		/// Acquires a reader lock
   		/// </summary>
   		/// <remarks>
  -		/// AcquireReaderLock blocks if a different thread has the writer 
  -		/// lock, or if at least one thread is waiting for the writer lock
  +		/// <para>
  +		/// <see cref="AcquireReaderLock"/> blocks if a different thread has the writer 
  +		/// lock, or if at least one thread is waiting for the writer lock.
  +		/// </para>
   		/// </remarks>
   		public void AcquireReaderLock()
   		{
  @@ -81,8 +88,10 @@
   		/// Decrements the lock count
   		/// </summary>
   		/// <remarks>
  -		/// ReleaseReaderLock decrements the lock count. When the count 
  -		/// reaches zero, the lock is released
  +		/// <para>
  +		/// <see cref="ReleaseReaderLock"/> decrements the lock count. When the count 
  +		/// reaches zero, the lock is released.
  +		/// </para>
   		/// </remarks>
   		public void ReleaseReaderLock()
   		{
  @@ -97,7 +106,9 @@
   		/// Acquires the writer lock
   		/// </summary>
   		/// <remarks>
  -		/// This method blocks if another thread has a reader lock or writer lock
  +		/// <para>
  +		/// This method blocks if another thread has a reader lock or writer lock.
  +		/// </para>
   		/// </remarks>
   		public void AcquireWriterLock()
   		{
  @@ -112,8 +123,10 @@
   		/// Decrements the lock count on the writer lock
   		/// </summary>
   		/// <remarks>
  +		/// <para>
   		/// ReleaseWriterLock decrements the writer lock count. 
  -		/// When the count reaches zero, the writer lock is released
  +		/// When the count reaches zero, the writer lock is released.
  +		/// </para>
   		/// </remarks>
   		public void ReleaseWriterLock()
   		{
  
  
  
  1.5       +27 -2     logging-log4net/src/Util/ReusableStringWriter.cs
  
  Index: ReusableStringWriter.cs
  ===================================================================
  RCS file: /home/cvs/logging-log4net/src/Util/ReusableStringWriter.cs,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- ReusableStringWriter.cs	17 Jan 2005 20:18:48 -0000	1.4
  +++ ReusableStringWriter.cs	7 Feb 2005 04:05:50 -0000	1.5
  @@ -23,23 +23,43 @@
   namespace log4net.Util
   {
   	/// <summary>
  -	/// A StringWriter that can be <see cref="Reset"/> and reused
  +	/// A <see cref="StringWriter"/> that can be <see cref="Reset"/> and reused
   	/// </summary>
  +	/// <remarks>
  +	/// <para>
  +	/// A <see cref="StringWriter"/> that can be <see cref="Reset"/> and reused.
  +	/// This uses a single buffer for string operations.
  +	/// </para>
  +	/// </remarks>
   	/// <author>Nicko Cadell</author>
   	public class ReusableStringWriter : StringWriter
   	{
  +		#region Constructor
  +
   		/// <summary>
   		/// Create an instance of <see cref="ReusableStringWriter"/>
   		/// </summary>
   		/// <param name="formatProvider">the format provider to use</param>
  +		/// <remarks>
  +		/// <para>
  +		/// Create an instance of <see cref="ReusableStringWriter"/>
  +		/// </para>
  +		/// </remarks>
   		public ReusableStringWriter(IFormatProvider formatProvider) : base(formatProvider) 
   		{
   		}
   
  +		#endregion
  +
   		/// <summary>
   		/// Override Dispose to prevent closing of writer
   		/// </summary>
   		/// <param name="disposing">flag</param>
  +		/// <remarks>
  +		/// <para>
  +		/// Override Dispose to prevent closing of writer
  +		/// </para>
  +		/// </remarks>
   		protected override void Dispose(bool disposing)
   		{
   			// Do not close the writer
  @@ -47,10 +67,15 @@
   
   		/// <summary>
   		/// Reset this string writer so that it can be reused.
  -		/// The internal buffers are cleared and reset.
   		/// </summary>
   		/// <param name="maxCapacity">the maximum buffer capacity before it is trimmed</param>
   		/// <param name="defaultSize">the default size to make the buffer</param>
  +		/// <remarks>
  +		/// <para>
  +		/// Reset this string writer so that it can be reused.
  +		/// The internal buffers are cleared and reset.
  +		/// </para>
  +		/// </remarks>
   		public void Reset(int maxCapacity, int defaultSize)
   		{
   			// Reset working string buffer
  
  
  
  1.9       +69 -14    logging-log4net/src/Util/SystemInfo.cs
  
  Index: SystemInfo.cs
  ===================================================================
  RCS file: /home/cvs/logging-log4net/src/Util/SystemInfo.cs,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- SystemInfo.cs	17 Jan 2005 20:18:48 -0000	1.8
  +++ SystemInfo.cs	7 Feb 2005 04:05:50 -0000	1.9
  @@ -26,6 +26,11 @@
   	/// <summary>
   	/// Utility class for system specific information.
   	/// </summary>
  +	/// <remarks>
  +	/// <para>
  +	/// Utility class of static methods for system specific information.
  +	/// </para>
  +	/// </remarks>
   	/// <author>Nicko Cadell</author>
   	/// <author>Gert Driesen</author>
   	/// <author>Alexey Solofnenko</author>
  @@ -36,6 +41,11 @@
   		/// <summary>
   		/// Private constructor to prevent instances.
   		/// </summary>
  +		/// <remarks>
  +		/// <para>
  +		/// Only static methods are exposed from this type.
  +		/// </para>
  +		/// </remarks>
   		private SystemInfo() 
   		{
   		}
  @@ -50,6 +60,11 @@
   		/// <value>
   		/// The system dependent line terminator.
   		/// </value>
  +		/// <remarks>
  +		/// <para>
  +		/// Gets the system dependent line terminator.
  +		/// </para>
  +		/// </remarks>
   		public static string NewLine
   		{
   			get
  @@ -66,6 +81,11 @@
   		/// Gets the base directory for this <see cref="AppDomain"/>.
   		/// </summary>
   		/// <value>The base directory path for the current <see cref="AppDomain"/>.</value>
  +		/// <remarks>
  +		/// <para>
  +		/// Gets the base directory for this <see cref="AppDomain"/>.
  +		/// </para>
  +		/// </remarks>
   		public static string ApplicationBaseDirectory
   		{
   			get 
  @@ -83,9 +103,11 @@
   		/// </summary>
   		/// <value>The path to the configuration file for the current <see cref="AppDomain"/>.</value>
   		/// <remarks>
  +		/// <para>
   		/// The .NET Compact Framework 1.0 does not have a concept of a configuration
   		/// file. For this runtime, we use the entry assembly location as the root for
   		/// the configuration file name.
  +		/// </para>
   		/// </remarks>
   		public static string ConfigurationFileLocation
   		{
  @@ -103,6 +125,11 @@
   		/// Gets the path to the file that first executed in the current <see cref="AppDomain"/>.
   		/// </summary>
   		/// <value>The path to the entry assembly.</value>
  +		/// <remarks>
  +		/// <para>
  +		/// Gets the path to the file that first executed in the current <see cref="AppDomain"/>.
  +		/// </para>
  +		/// </remarks>
   		public static string EntryAssemblyLocation
   		{
   			get 
  @@ -148,11 +175,19 @@
   		/// Get the host name or machine name for the current machine
   		/// </summary>
   		/// <value>
  +		/// The hostname or machine name
  +		/// </value>
  +		/// <remarks>
  +		/// <para>
  +		/// Get the host name or machine name for the current machine
  +		/// </para>
  +		/// <para>
   		/// The host name (<see cref="System.Net.Dns.GetHostName"/>) or
   		/// the machine name (<c>Environment.MachineName</c>) for
   		/// the current machine, or if neither of these are available
   		/// then <c>NOT AVAILABLE</c> is returned.
  -		/// </value>
  +		/// </para>
  +		/// </remarks>
   		public static string HostName
   		{
   			get
  @@ -215,7 +250,9 @@
   		/// If available the name of the application is retrieved from
   		/// the <c>AppDomain</c> using <c>AppDomain.CurrentDomain.FriendlyName</c>.
   		/// </para>
  -		/// <para>Otherwise the file name of the entry assembly is used.</para>
  +		/// <para>
  +		/// Otherwise the file name of the entry assembly is used.
  +		/// </para>
   		/// </remarks>
   		public static string ApplicationFriendlyName
   		{
  @@ -311,12 +348,14 @@
   		/// Gets the assembly location path for the specified assembly.
   		/// </summary>
   		/// <param name="myAssembly">The assembly to get the location for.</param>
  +		/// <returns>The location of the assembly.</returns>
   		/// <remarks>
  +		/// <para>
   		/// This method does not guarantee to return the correct path
   		/// to the assembly. If only tries to give an indication as to
   		/// where the assembly was loaded from.
  +		/// </para>
   		/// </remarks>
  -		/// <returns>The location of the assembly.</returns>
   		public static string AssemblyLocationInfo(Assembly myAssembly)
   		{
   #if NETCF
  @@ -349,12 +388,14 @@
   		/// loaded.
   		/// </summary>
   		/// <param name="type">The <see cref="Type" /> to get the fully qualified name for.</param>
  +		/// <returns>The fully qualified name for the <see cref="Type" />.</returns>
   		/// <remarks>
  +		/// <para>
   		/// This is equivalent to the <c>Type.AssemblyQualifiedName</c> property,
   		/// but this method works on the .NET Compact Framework 1.0 as well as
   		/// the full .NET runtime.
  +		/// </para>
   		/// </remarks>
  -		/// <returns>The fully qualified name for the <see cref="Type" />.</returns>
   		public static string AssemblyQualifiedName(Type type)
   		{
   			return type.FullName + ", " + type.Assembly.FullName;
  @@ -364,6 +405,7 @@
   		/// Gets the short name of the <see cref="Assembly" />.
   		/// </summary>
   		/// <param name="myAssembly">The <see cref="Assembly" /> to get the name for.</param>
  +		/// <returns>The short name of the <see cref="Assembly" />.</returns>
   		/// <remarks>
   		/// <para>
   		/// The short name of the assembly is the <see cref="Assembly.FullName" /> 
  @@ -371,7 +413,7 @@
   		/// assembly's file name without the extension.
   		/// </para>
   		/// <para>
  -		/// Use this rather than Assembly.GetName().Name because that
  +		/// Use this rather than <c>Assembly.GetName().Name</c> because that
   		/// is not available on the Compact Framework.
   		/// </para>
   		/// <para>
  @@ -381,7 +423,6 @@
   		/// start from there and strip out just the assembly name.
   		/// </para>
   		/// </remarks>
  -		/// <returns>The short name of the <see cref="Assembly" />.</returns>
   		public static string AssemblyShortName(Assembly myAssembly)
   		{
   			string name = myAssembly.FullName;
  @@ -398,11 +439,15 @@
   		}
   
   		/// <summary>
  -		/// Gets the file name portion of the <see cref="Assembly" />, including 
  -		/// the extension.
  +		/// Gets the file name portion of the <see cref="Assembly" />, including the extension.
   		/// </summary>
   		/// <param name="myAssembly">The <see cref="Assembly" /> to get the file name for.</param>
   		/// <returns>The file name of the assembly.</returns>
  +		/// <remarks>
  +		/// <para>
  +		/// Gets the file name portion of the <see cref="Assembly" />, including the extension.
  +		/// </para>
  +		/// </remarks>
   		public static string AssemblyFileName(Assembly myAssembly)
   		{
   #if NETCF
  @@ -435,6 +480,7 @@
   		/// <param name="typeName">The name of the type to load.</param>
   		/// <param name="throwOnError">Flag set to <c>true</c> to throw an exception if the type cannot be loaded.</param>
   		/// <param name="ignoreCase"><c>true</c> to ignore the case of the type name; otherwise, <c>false</c></param>
  +		/// <returns>The type loaded or <c>null</c> if it could not be loaded.</returns>
   		/// <remarks>
   		/// <para>
   		/// If the type name is fully qualified, i.e. if contains an assembly name in 
  @@ -447,7 +493,6 @@
   		/// then all the loaded assemblies will be searched for the type.
   		/// </para>
   		/// </remarks>
  -		/// <returns>The type loaded or <c>null</c> if it could not be loaded.</returns>
   		public static Type GetTypeFromString(Type relativeType, string typeName, bool throwOnError, bool ignoreCase)
   		{
   			return GetTypeFromString(relativeType.Assembly, typeName, throwOnError, ignoreCase);
  @@ -459,6 +504,7 @@
   		/// <param name="typeName">The name of the type to load.</param>
   		/// <param name="throwOnError">Flag set to <c>true</c> to throw an exception if the type cannot be loaded.</param>
   		/// <param name="ignoreCase"><c>true</c> to ignore the case of the type name; otherwise, <c>false</c></param>
  +		/// <returns>The type loaded or <c>null</c> if it could not be loaded.</returns>		
   		/// <remarks>
   		/// <para>
   		/// If the type name is fully qualified, i.e. if contains an assembly name in 
  @@ -471,7 +517,6 @@
   		/// in the assembly then all the loaded assemblies will be searched for the type.
   		/// </para>
   		/// </remarks>
  -		/// <returns>The type loaded or <c>null</c> if it could not be loaded.</returns>		
   		public static Type GetTypeFromString(string typeName, bool throwOnError, bool ignoreCase)
   		{
   			return GetTypeFromString(Assembly.GetCallingAssembly(), typeName, throwOnError, ignoreCase);
  @@ -484,6 +529,7 @@
   		/// <param name="typeName">The name of the type to load.</param>
   		/// <param name="throwOnError">Flag set to <c>true</c> to throw an exception if the type cannot be loaded.</param>
   		/// <param name="ignoreCase"><c>true</c> to ignore the case of the type name; otherwise, <c>false</c></param>
  +		/// <returns>The type loaded or <c>null</c> if it could not be loaded.</returns>
   		/// <remarks>
   		/// <para>
   		/// If the type name is fully qualified, i.e. if contains an assembly name in 
  @@ -496,7 +542,6 @@
   		/// will be searched for the type.
   		/// </para>
   		/// </remarks>
  -		/// <returns>The type loaded or <c>null</c> if it could not be loaded.</returns>
   		public static Type GetTypeFromString(Assembly relativeAssembly, string typeName, bool throwOnError, bool ignoreCase)
   		{
   			// Check if the type name specifies the assembly name
  @@ -565,6 +610,11 @@
   		/// Generate a new guid
   		/// </summary>
   		/// <returns>A new Guid</returns>
  +		/// <remarks>
  +		/// <para>
  +		/// Generate a new guid
  +		/// </para>
  +		/// </remarks>
   		public static Guid NewGuid()
   		{
   #if NETCF
  @@ -575,9 +625,7 @@
   		}
   
   		/// <summary>
  -		/// Create a new instance of the <see cref="ArgumentOutOfRangeException"/> class 
  -		/// with a specified error message, the parameter name, and the value 
  -		/// of the argument.
  +		/// Create an <see cref="ArgumentOutOfRangeException"/>
   		/// </summary>
   		/// <param name="parameterName">The name of the parameter that caused the exception</param>
   		/// <param name="actualValue">The value of the argument that causes this exception</param>
  @@ -585,6 +633,11 @@
   		/// <returns>the ArgumentOutOfRangeException object</returns>
   		/// <remarks>
   		/// <para>
  +		/// Create a new instance of the <see cref="ArgumentOutOfRangeException"/> class 
  +		/// with a specified error message, the parameter name, and the value 
  +		/// of the argument.
  +		/// </para>
  +		/// <para>
   		/// The Compact Framework does not support the 3 parameter constructor for the
   		/// <see cref="ArgumentOutOfRangeException"/> type. This method provides an
   		/// implementation that works for all platforms.
  @@ -648,8 +701,10 @@
   		/// Gets an empty array of types.
   		/// </summary>
   		/// <remarks>
  +		/// <para>
   		/// The <c>Type.EmptyTypes</c> field is not available on
   		/// the .NET Compact Framework 1.0.
  +		/// </para>
   		/// </remarks>
   		public static readonly Type[] EmptyTypes = new Type[0];
   
  
  
  
  1.4       +73 -3     logging-log4net/src/Util/TextWriterAdapter.cs
  
  Index: TextWriterAdapter.cs
  ===================================================================
  RCS file: /home/cvs/logging-log4net/src/Util/TextWriterAdapter.cs,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- TextWriterAdapter.cs	17 Jan 2005 20:18:48 -0000	1.3
  +++ TextWriterAdapter.cs	7 Feb 2005 04:05:50 -0000	1.4
  @@ -27,10 +27,16 @@
   	/// Adapter that extends <see cref="TextWriter"/> and forwards all
   	/// messages to an instance of <see cref="TextWriter"/>.
   	/// </summary>
  +	/// <remarks>
  +	/// <para>
  +	/// Adapter that extends <see cref="TextWriter"/> and forwards all
  +	/// messages to an instance of <see cref="TextWriter"/>.
  +	/// </para>
  +	/// </remarks>
   	/// <author>Nicko Cadell</author>
   	public abstract class TextWriterAdapter : TextWriter
   	{
  -		#region Protected Member Variables
  +		#region Private Member Variables
   
   		/// <summary>
   		/// The writer to forward messages to
  @@ -46,6 +52,12 @@
   		/// messages to a <see cref="TextWriter"/>.
   		/// </summary>
   		/// <param name="writer">The <see cref="TextWriter"/> to forward to</param>
  +		/// <remarks>
  +		/// <para>
  +		/// Create an instance of <see cref="TextWriterAdapter"/> that forwards all
  +		/// messages to a <see cref="TextWriter"/>.
  +		/// </para>
  +		/// </remarks>
   		protected TextWriterAdapter(TextWriter writer) :  base(CultureInfo.InvariantCulture)
   		{
   			m_writer = writer;
  @@ -56,11 +68,16 @@
   		#region Protected Instance Properties
   
   		/// <summary>
  -		/// Gets the underlying <see cref="TextWriter" />.
  +		/// Gets or sets the underlying <see cref="TextWriter" />.
   		/// </summary>
   		/// <value>
   		/// The underlying <see cref="TextWriter" />.
   		/// </value>
  +		/// <remarks>
  +		/// <para>
  +		/// Gets or sets the underlying <see cref="TextWriter" />.
  +		/// </para>
  +		/// </remarks>
   		protected TextWriter Writer 
   		{
   			get { return m_writer; }
  @@ -74,6 +91,14 @@
   		/// <summary>
   		/// The Encoding in which the output is written
   		/// </summary>
  +		/// <value>
  +		/// The <see cref="Encoding"/>
  +		/// </value>
  +		/// <remarks>
  +		/// <para>
  +		/// The Encoding in which the output is written
  +		/// </para>
  +		/// </remarks>
   		override public Encoding Encoding 
   		{
   			get { return m_writer.Encoding; }
  @@ -82,6 +107,14 @@
   		/// <summary>
   		/// Gets an object that controls formatting
   		/// </summary>
  +		/// <value>
  +		/// The format provider
  +		/// </value>
  +		/// <remarks>
  +		/// <para>
  +		/// Gets an object that controls formatting
  +		/// </para>
  +		/// </remarks>
   		override public IFormatProvider FormatProvider 
   		{
   			get { return m_writer.FormatProvider; }
  @@ -90,6 +123,14 @@
   		/// <summary>
   		/// Gets or sets the line terminator string used by the TextWriter
   		/// </summary>
  +		/// <value>
  +		/// The line terminator to use
  +		/// </value>
  +		/// <remarks>
  +		/// <para>
  +		/// Gets or sets the line terminator string used by the TextWriter
  +		/// </para>
  +		/// </remarks>
   		override public String NewLine 
   		{
   			get { return m_writer.NewLine; }
  @@ -103,6 +144,10 @@
   		/// <summary>
   		/// Closes the writer and releases any system resources associated with the writer
   		/// </summary>
  +		/// <remarks>
  +		/// <para>
  +		/// </para>
  +		/// </remarks>
   		override public void Close() 
   		{
   			m_writer.Close();
  @@ -112,6 +157,11 @@
   		/// Dispose this writer
   		/// </summary>
   		/// <param name="disposing">flag indicating if we are being disposed</param>
  +		/// <remarks>
  +		/// <para>
  +		/// Dispose this writer
  +		/// </para>
  +		/// </remarks>
   		override protected void Dispose(bool disposing)
   		{
   			if (disposing)
  @@ -121,9 +171,14 @@
   		}
   
   		/// <summary>
  +		/// Flushes any buffered output
  +		/// </summary>
  +		/// <remarks>
  +		/// <para>
   		/// Clears all buffers for the writer and causes any buffered data to be written 
   		/// to the underlying device
  -		/// </summary>
  +		/// </para>
  +		/// </remarks>
   		override public void Flush() 
   		{
   			m_writer.Flush();
  @@ -133,6 +188,11 @@
   		/// Writes a character to the wrapped TextWriter
   		/// </summary>
   		/// <param name="value">the value to write to the TextWriter</param>
  +		/// <remarks>
  +		/// <para>
  +		/// Writes a character to the wrapped TextWriter
  +		/// </para>
  +		/// </remarks>
   		override public void Write(char value) 
   		{
   			m_writer.Write(value);
  @@ -144,6 +204,11 @@
   		/// <param name="buffer">the data buffer</param>
   		/// <param name="index">the start index</param>
   		/// <param name="count">the number of characters to write</param>
  +		/// <remarks>
  +		/// <para>
  +		/// Writes a character buffer to the wrapped TextWriter
  +		/// </para>
  +		/// </remarks>
   		override public void Write(char[] buffer, int index, int count) 
   		{
   			m_writer.Write(buffer, index, count);
  @@ -153,6 +218,11 @@
   		/// Writes a string to the wrapped TextWriter
   		/// </summary>
   		/// <param name="value">the value to write to the TextWriter</param>
  +		/// <remarks>
  +		/// <para>
  +		/// Writes a string to the wrapped TextWriter
  +		/// </para>
  +		/// </remarks>
   		override public void Write(String value) 
   		{
   			m_writer.Write(value);
  
  
  
  1.3       +32 -1     logging-log4net/src/Util/ThreadContextList.cs
  
  Index: ThreadContextList.cs
  ===================================================================
  RCS file: /home/cvs/logging-log4net/src/Util/ThreadContextList.cs,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- ThreadContextList.cs	17 Jan 2005 20:18:48 -0000	1.2
  +++ ThreadContextList.cs	7 Feb 2005 04:05:50 -0000	1.3
  @@ -29,6 +29,7 @@
   	/// </summary>
   	/// <remarks>
   	/// <para>
  +	/// Implementation of List for the <see cref="log4net.ThreadContext"/>
   	/// </para>
   	/// </remarks>
   	/// <author>Nicko Cadell</author>
  @@ -46,8 +47,13 @@
   		#region Public Instance Constructors
   
   		/// <summary>
  -		/// Initializes a new instance of the <see cref="ThreadContextStack" /> class. 
  +		/// Internal constructor
   		/// </summary>
  +		/// <remarks>
  +		/// <para>
  +		/// Initializes a new instance of the <see cref="ThreadContextStack" /> class. 
  +		/// </para>
  +		/// </remarks>
   		internal ThreadContextList()
   		{
   		}
  @@ -59,6 +65,11 @@
   		/// <summary>
   		/// Clears all the contextual information held in this list.
   		/// </summary>
  +		/// <remarks>
  +		/// <para>
  +		/// Clears all the contextual information held in this list.
  +		/// </para>
  +		/// </remarks>
   		public void Clear() 
   		{
   			m_list.Clear();
  @@ -68,6 +79,11 @@
   		/// Append a message to this list
   		/// </summary>
   		/// <param name="message">the message to append to this list</param>
  +		/// <remarks>
  +		/// <para>
  +		/// Append a message to this list
  +		/// </para>
  +		/// </remarks>
   		public void Append(string message) 
   		{
   			m_list.Add(message);
  @@ -81,6 +97,11 @@
   		/// Gets the current context information for this list.
   		/// </summary>
   		/// <returns>The current context information.</returns>
  +		/// <remarks>
  +		/// <para>
  +		/// Gets the current context information for this list.
  +		/// </para>
  +		/// </remarks>
   		internal string GetFullMessage() 
   		{
   			if (m_list.Count > 1)
  @@ -113,6 +134,11 @@
   		/// Gets the current context information for this list.
   		/// </summary>
   		/// <returns>Gets the current context information</returns>
  +		/// <remarks>
  +		/// <para>
  +		/// Gets the current context information for this list.
  +		/// </para>
  +		/// </remarks>
   		public override string ToString()
   		{
   			return GetFullMessage();
  @@ -122,6 +148,11 @@
   		/// Get a portable version of this object
   		/// </summary>
   		/// <returns>the portable instance of this object</returns>
  +		/// <remarks>
  +		/// <para>
  +		/// Get a portable version of this object
  +		/// </para>
  +		/// </remarks>
   		object IFixingRequired.GetFixedObject()
   		{
   			return GetFullMessage();
  
  
  
  1.4       +14 -3     logging-log4net/src/Util/ThreadContextLists.cs
  
  Index: ThreadContextLists.cs
  ===================================================================
  RCS file: /home/cvs/logging-log4net/src/Util/ThreadContextLists.cs,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- ThreadContextLists.cs	17 Jan 2005 20:18:48 -0000	1.3
  +++ ThreadContextLists.cs	7 Feb 2005 04:05:50 -0000	1.4
  @@ -26,6 +26,7 @@
   	/// </summary>
   	/// <remarks>
   	/// <para>
  +	/// Implementation of Lists collection for the <see cref="log4net.ThreadContext"/>
   	/// </para>
   	/// </remarks>
   	/// <author>Nicko Cadell</author>
  @@ -36,8 +37,13 @@
   		#region Public Instance Constructors
   
   		/// <summary>
  -		/// Initializes a new instance of the <see cref="ThreadContextLists" /> class.
  +		/// Internal constructor
   		/// </summary>
  +		/// <remarks>
  +		/// <para>
  +		/// Initializes a new instance of the <see cref="ThreadContextLists" /> class.
  +		/// </para>
  +		/// </remarks>
   		internal ThreadContextLists(ContextPropertiesBase properties)
   		{
   			m_properties = properties;
  @@ -48,11 +54,16 @@
   		#region Public Instance Properties
   
   		/// <summary>
  -		/// Gets or sets the value of a property
  +		/// Gets the named list
   		/// </summary>
   		/// <value>
  -		/// The value for the property with the specified key
  +		/// The named list
   		/// </value>
  +		/// <remarks>
  +		/// <para>
  +		/// Gets the named list
  +		/// </para>
  +		/// </remarks>
   		public ThreadContextList this[string key]
   		{
   			get 
  
  
  
  1.4       +24 -4     logging-log4net/src/Util/ThreadContextProperties.cs
  
  Index: ThreadContextProperties.cs
  ===================================================================
  RCS file: /home/cvs/logging-log4net/src/Util/ThreadContextProperties.cs,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- ThreadContextProperties.cs	17 Jan 2005 20:18:48 -0000	1.3
  +++ ThreadContextProperties.cs	7 Feb 2005 04:05:50 -0000	1.4
  @@ -45,8 +45,13 @@
   		#region Public Instance Constructors
   
   		/// <summary>
  -		/// Initializes a new instance of the <see cref="ThreadContextProperties" /> class.
  +		/// Internal constructor
   		/// </summary>
  +		/// <remarks>
  +		/// <para>
  +		/// Initializes a new instance of the <see cref="ThreadContextProperties" /> class.
  +		/// </para>
  +		/// </remarks>
   		internal ThreadContextProperties()
   		{
   		}
  @@ -61,6 +66,11 @@
   		/// <value>
   		/// The value for the property with the specified key
   		/// </value>
  +		/// <remarks>
  +		/// <para>
  +		/// Gets or sets the value of a property
  +		/// </para>
  +		/// </remarks>
   		override public object this[string key]
   		{
   			get 
  @@ -86,6 +96,11 @@
   		/// Remove a property
   		/// </summary>
   		/// <param name="key">the key for the entry to remove</param>
  +		/// <remarks>
  +		/// <para>
  +		/// Remove a property
  +		/// </para>
  +		/// </remarks>
   		public void Remove(string key)
   		{
   			PropertiesDictionary dictionary = GetProperties(false);
  @@ -96,8 +111,13 @@
   		}
   
   		/// <summary>
  -		/// Clear the global context properties
  +		/// Clear all properties
   		/// </summary>
  +		/// <remarks>
  +		/// <para>
  +		/// Clear all properties
  +		/// </para>
  +		/// </remarks>
   		public void Clear()
   		{
   			PropertiesDictionary dictionary = GetProperties(false);
  @@ -112,7 +132,7 @@
   		#region Internal Instance Methods
   
   		/// <summary>
  -		/// Get the PropertiesDictionary stored in the LocalDataStoreSlot for this thread.
  +		/// Get the <c>PropertiesDictionary</c> for this thread.
   		/// </summary>
   		/// <param name="create">create the dictionary if it does not exist, otherwise return null if is does not exist</param>
   		/// <returns>the properties for this thread</returns>
  @@ -120,7 +140,7 @@
   		/// <para>
   		/// The collection returned is only to be used on the calling thread. If the
   		/// caller needs to share the collection between different threads then the 
  -		/// caller must clone the collection before doings so.
  +		/// caller must clone the collection before doing so.
   		/// </para>
   		/// </remarks>
   		internal PropertiesDictionary GetProperties(bool create)
  
  
  
  1.5       +70 -9     logging-log4net/src/Util/ThreadContextStack.cs
  
  Index: ThreadContextStack.cs
  ===================================================================
  RCS file: /home/cvs/logging-log4net/src/Util/ThreadContextStack.cs,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- ThreadContextStack.cs	17 Jan 2005 20:18:48 -0000	1.4
  +++ ThreadContextStack.cs	7 Feb 2005 04:05:50 -0000	1.5
  @@ -31,6 +31,7 @@
   	/// </summary>
   	/// <remarks>
   	/// <para>
  +	/// Implementation of Stack for the <see cref="log4net.ThreadContext"/>
   	/// </para>
   	/// </remarks>
   	/// <author>Nicko Cadell</author>
  @@ -48,8 +49,13 @@
   		#region Public Instance Constructors
   
   		/// <summary>
  -		/// Initializes a new instance of the <see cref="ThreadContextStack" /> class. 
  +		/// Internal constructor
   		/// </summary>
  +		/// <remarks>
  +		/// <para>
  +		/// Initializes a new instance of the <see cref="ThreadContextStack" /> class. 
  +		/// </para>
  +		/// </remarks>
   		internal ThreadContextStack()
   		{
   		}
  @@ -81,15 +87,14 @@
   		/// <summary>
   		/// Removes the top context from this stack.
   		/// </summary>
  +		/// <returns>The message in the context that was removed from the top of this stack.</returns>
   		/// <remarks>
  +		/// <para>
   		/// Remove the top context from this stack, and return
   		/// it to the caller. If this stack is empty then an
   		/// empty string (not <see langword="null"/>) is returned.
  +		/// </para>
   		/// </remarks>
  -		/// <returns>
  -		/// The message in the context that was removed from the top 
  -		/// of this stack.
  -		/// </returns>
   		public string Pop() 
   		{
   			Stack stack = m_stack;
  @@ -108,10 +113,12 @@
   		/// An <see cref="IDisposable"/> that can be used to clean up the context stack.
   		/// </returns>
   		/// <remarks>
  +		/// <para>
   		/// Pushes a new context onto this stack. An <see cref="IDisposable"/>
   		/// is returned that can be used to clean up this stack. This
   		/// can be easily combined with the <c>using</c> keyword to scope the
   		/// context.
  +		/// </para>
   		/// </remarks>
   		/// <example>Simple example of using the <c>Push</c> method with the <c>using</c> keyword.
   		/// <code lang="C#">
  @@ -153,6 +160,11 @@
   		/// Gets the current context information  for this stack.
   		/// </summary>
   		/// <returns>Gets the current context information</returns>
  +		/// <remarks>
  +		/// <para>
  +		/// Gets the current context information  for this stack.
  +		/// </para>
  +		/// </remarks>
   		public override string ToString()
   		{
   			return GetFullMessage();
  @@ -162,6 +174,11 @@
   		/// Get a portable version of this object
   		/// </summary>
   		/// <returns>the portable instance of this object</returns>
  +		/// <remarks>
  +		/// <para>
  +		/// Get a cross thread portable version of this object
  +		/// </para>
  +		/// </remarks>
   		object IFixingRequired.GetFixedObject()
   		{
   			return GetFullMessage();
  @@ -170,6 +187,11 @@
   		/// <summary>
   		/// Inner class used to represent a single context frame in the stack.
   		/// </summary>
  +		/// <remarks>
  +		/// <para>
  +		/// Inner class used to represent a single context frame in the stack.
  +		/// </para>
  +		/// </remarks>
   		private sealed class StackFrame 
   		{
   			#region Private Instance Fields
  @@ -183,11 +205,16 @@
   			#region Internal Instance Constructors
   
   			/// <summary>
  -			/// Initializes a new instance of the <see cref="StackFrame" /> class
  -			/// with the specified message and parent context.
  +			/// Constructor
   			/// </summary>
   			/// <param name="message">The message for this context.</param>
   			/// <param name="parent">The parent context in the chain.</param>
  +			/// <remarks>
  +			/// <para>
  +			/// Initializes a new instance of the <see cref="StackFrame" /> class
  +			/// with the specified message and parent context.
  +			/// </para>
  +			/// </remarks>
   			internal StackFrame(string message, StackFrame parent) 
   			{
   				m_message = message;
  @@ -207,6 +234,11 @@
   			/// Get the message.
   			/// </summary>
   			/// <value>The message.</value>
  +			/// <remarks>
  +			/// <para>
  +			/// Get the message.
  +			/// </para>
  +			/// </remarks>
   			internal string Message
   			{
   				get { return m_message; }
  @@ -218,6 +250,11 @@
   			/// <value>
   			/// The full text of the context down to the root level.
   			/// </value>
  +			/// <remarks>
  +			/// <para>
  +			/// Gets the full text of the context down to the root level.
  +			/// </para>
  +			/// </remarks>
   			internal string FullMessage
   			{
   				get 
  @@ -237,8 +274,10 @@
   		/// Struct returned from the <see cref="ThreadContextStack.Push"/> method.
   		/// </summary>
   		/// <remarks>
  +		/// <para>
   		/// This struct implements the <see cref="IDisposable"/> and is designed to be used
   		/// with the <see langword="using"/> pattern to remove the stack frame at the end of the scope.
  +		/// </para>
   		/// </remarks>
   		private struct AutoPopStackFrame : IDisposable
   		{
  @@ -259,11 +298,16 @@
   			#region Internal Instance Constructors
   
   			/// <summary>
  -			/// Initializes a new instance of the <see cref="AutoPopStackFrame" /> class with
  -			/// the specified stack and return depth.
  +			/// Constructor
   			/// </summary>
   			/// <param name="frameStack">The internal stack used by the ThreadContextStack.</param>
   			/// <param name="frameDepth">The depth to return the stack to when this object is disposed.</param>
  +			/// <remarks>
  +			/// <para>
  +			/// Initializes a new instance of the <see cref="AutoPopStackFrame" /> class with
  +			/// the specified stack and return depth.
  +			/// </para>
  +			/// </remarks>
   			internal AutoPopStackFrame(Stack frameStack, int frameDepth)
   			{
   				m_frameStack = frameStack;
  @@ -277,6 +321,11 @@
   			/// <summary>
   			/// Returns the stack to the correct depth.
   			/// </summary>
  +			/// <remarks>
  +			/// <para>
  +			/// Returns the stack to the correct depth.
  +			/// </para>
  +			/// </remarks>
   			public void Dispose()
   			{
   				if (m_frameDepth >= 0 && m_frameStack != null)
  @@ -297,15 +346,22 @@
   		/// provide missing methods.
   		/// </summary>
   		/// <remarks>
  +		/// <para>
   		/// The Compact Framework version of the <see cref="System.Collections.Stack"/>
   		/// class is missing the <c>Clear</c> and <c>Clone</c> methods.
   		/// This subclass adds implementations of those missing methods.
  +		/// </para>
   		/// </remarks>
   		public class Stack : System.Collections.Stack
   		{
   			/// <summary>
   			/// Clears the stack of all elements.
   			/// </summary>
  +			/// <remarks>
  +			/// <para>
  +			/// Clears the stack of all elements.
  +			/// </para>
  +			/// </remarks>
   			public void Clear()
   			{
   				while(Count > 0)
  @@ -318,6 +374,11 @@
   			/// Makes a shallow copy of the stack's elements.
   			/// </summary>
   			/// <returns>A new stack that has a shallow copy of the stack's elements.</returns>
  +			/// <remarks>
  +			/// <para>
  +			/// Makes a shallow copy of the stack's elements.
  +			/// </para>
  +			/// </remarks>
   			public Stack Clone()
   			{
   				Stack res = new Stack();
  
  
  
  1.4       +14 -3     logging-log4net/src/Util/ThreadContextStacks.cs
  
  Index: ThreadContextStacks.cs
  ===================================================================
  RCS file: /home/cvs/logging-log4net/src/Util/ThreadContextStacks.cs,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- ThreadContextStacks.cs	17 Jan 2005 20:18:48 -0000	1.3
  +++ ThreadContextStacks.cs	7 Feb 2005 04:05:50 -0000	1.4
  @@ -26,6 +26,7 @@
   	/// </summary>
   	/// <remarks>
   	/// <para>
  +	/// Implementation of Stacks collection for the <see cref="log4net.ThreadContext"/>
   	/// </para>
   	/// </remarks>
   	/// <author>Nicko Cadell</author>
  @@ -36,8 +37,13 @@
   		#region Public Instance Constructors
   
   		/// <summary>
  -		/// Initializes a new instance of the <see cref="ThreadContextStacks" /> class.
  +		/// Internal constructor
   		/// </summary>
  +		/// <remarks>
  +		/// <para>
  +		/// Initializes a new instance of the <see cref="ThreadContextStacks" /> class.
  +		/// </para>
  +		/// </remarks>
   		internal ThreadContextStacks(ContextPropertiesBase properties)
   		{
   			m_properties = properties;
  @@ -48,11 +54,16 @@
   		#region Public Instance Properties
   
   		/// <summary>
  -		/// Gets or sets the value of a property
  +		/// Gets the named thread context stack
   		/// </summary>
   		/// <value>
  -		/// The value for the property with the specified key
  +		/// The named stack
   		/// </value>
  +		/// <remarks>
  +		/// <para>
  +		/// Gets the named thread context stack
  +		/// </para>
  +		/// </remarks>
   		public ThreadContextStack this[string key]
   		{
   			get 
  
  
  
  1.6       +12 -1     logging-log4net/src/Util/Transform.cs
  
  Index: Transform.cs
  ===================================================================
  RCS file: /home/cvs/logging-log4net/src/Util/Transform.cs,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- Transform.cs	17 Jan 2005 20:18:48 -0000	1.5
  +++ Transform.cs	7 Feb 2005 04:05:50 -0000	1.6
  @@ -25,6 +25,11 @@
   	/// <summary>
   	/// Utility class for transforming strings.
   	/// </summary>
  +	/// <remarks>
  +	/// <para>
  +	/// Utility class for transforming strings.
  +	/// </para>
  +	/// </remarks>
   	/// <author>Nicko Cadell</author>
   	/// <author>Gert Driesen</author>
   	public sealed class Transform
  @@ -35,7 +40,9 @@
   		/// Initializes a new instance of the <see cref="Transform" /> class. 
   		/// </summary>
   		/// <remarks>
  +		/// <para>
   		/// Uses a private access modifier to prevent instantiation of this class.
  +		/// </para>
   		/// </remarks>
   		private Transform()
   		{
  @@ -46,13 +53,15 @@
   		#region Public Static Methods
   
   		/// <summary>
  -		/// Write a string to an XmlWriter
  +		/// Write a string to an <see cref="XmlWriter"/>
   		/// </summary>
   		/// <param name="writer">the writer to write to</param>
   		/// <param name="stringData">the string to write</param>
   		/// <remarks>
  +		/// <para>
   		/// The test is escaped either using XML escape entities
   		/// or using CDATA sections.
  +		/// </para>
   		/// </remarks>
   		public static void WriteEscapedXmlString(XmlWriter writer, string stringData)
   		{
  @@ -115,7 +124,9 @@
   		/// <param name="substring">the substring to find</param>
   		/// <returns>the number of times the substring occurs in the text</returns>
   		/// <remarks>
  +		/// <para>
   		/// The substring is assumed to be non repeating within itself.
  +		/// </para>
   		/// </remarks>
   		private static int CountSubstrings(string text, string substring)
   		{
  
  
  
  1.5       +52 -10    logging-log4net/src/Util/WindowsSecurityContext.cs
  
  Index: WindowsSecurityContext.cs
  ===================================================================
  RCS file: /home/cvs/logging-log4net/src/Util/WindowsSecurityContext.cs,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- WindowsSecurityContext.cs	17 Jan 2005 20:18:48 -0000	1.4
  +++ WindowsSecurityContext.cs	7 Feb 2005 04:05:50 -0000	1.5
  @@ -53,8 +53,10 @@
   		/// The impersonation modes for the <see cref="WindowsSecurityContext"/>
   		/// </summary>
   		/// <remarks>
  +		/// <para>
   		/// See the <see cref="WindowsSecurityContext.Credentials"/> property for
   		/// details.
  +		/// </para>
   		/// </remarks>
   		public enum ImpersonationMode
   		{
  @@ -84,6 +86,11 @@
   		/// <summary>
   		/// Default constructor
   		/// </summary>
  +		/// <remarks>
  +		/// <para>
  +		/// Default constructor
  +		/// </para>
  +		/// </remarks>
   		public WindowsSecurityContext()
   		{
   		}
  @@ -93,8 +100,11 @@
   		#region Public Properties
   
   		/// <summary>
  -		/// The impersonation mode for this security context
  +		/// Gets or sets the impersonation mode for this security context
   		/// </summary>
  +		/// <value>
  +		/// The impersonation mode for this security context
  +		/// </value>
   		/// <remarks>
   		/// <para>
   		/// Impersonate either a user with user credentials or
  @@ -124,8 +134,11 @@
   		}
   
   		/// <summary>
  -		/// The Windows username for this security context
  +		/// Gets or sets the Windows username for this security context
   		/// </summary>
  +		/// <value>
  +		/// The Windows username for this security context
  +		/// </value>
   		/// <remarks>
   		/// <para>
   		/// This property must be set if <see cref="Credentials"/>
  @@ -139,8 +152,11 @@
   		}
   
   		/// <summary>
  -		/// The Windows domain name for this security context
  +		/// Gets or sets the Windows domain name for this security context
   		/// </summary>
  +		/// <value>
  +		/// The Windows domain name for this security context
  +		/// </value>
   		/// <remarks>
   		/// <para>
   		/// The default value for <see cref="DomainName"/> is the local machine name
  @@ -158,8 +174,11 @@
   		}
   
   		/// <summary>
  -		/// The password for the Windows account specified by the <see cref="UserName"/> and <see cref="DomainName"/> properties.
  +		/// Sets the password for the Windows account specified by the <see cref="UserName"/> and <see cref="DomainName"/> properties.
   		/// </summary>
  +		/// <value>
  +		/// The password for the Windows account specified by the <see cref="UserName"/> and <see cref="DomainName"/> properties.
  +		/// </value>
   		/// <remarks>
   		/// <para>
   		/// This property must be set if <see cref="Credentials"/>
  @@ -168,7 +187,6 @@
   		/// </remarks>
   		public string Password
   		{
  -			get { return m_password; }
   			set { m_password = value; }
   		}
   
  @@ -216,12 +234,15 @@
   		/// Impersonate the Windows account specified by the <see cref="UserName"/> and <see cref="DomainName"/> properties.
   		/// </summary>
   		/// <param name="state">caller provided state</param>
  -		/// <returns>An <see cref="IDisposable"/> instance that will
  -		/// revoke the impersonation of this SecurityContext</returns>
  +		/// <returns>
  +		/// An <see cref="IDisposable"/> instance that will revoke the impersonation of this SecurityContext
  +		/// </returns>
   		/// <remarks>
  +		/// <para>
   		/// Depending on the <see cref="Credentials"/> property either
   		/// impersonate a user using credentials supplied or revert 
   		/// to the process credentials.
  +		/// </para>
   		/// </remarks>
   		public override IDisposable Impersonate(object state)
   		{
  @@ -250,7 +271,7 @@
   		/// <remarks>
   		/// <para>
   		/// Uses the Windows API call LogonUser to get a principal token for the account. This
  -		/// token is used to initialise the WindowsIdentity.
  +		/// token is used to initialize the WindowsIdentity.
   		/// </para>
   		/// </remarks>
   		private static WindowsIdentity LogonUser(string userName, string domainName, string password)
  @@ -310,18 +331,40 @@
   		#region DisposableImpersonationContext class
   
   		/// <summary>
  +		/// Adds <see cref="IDisposable"/> to <see cref="WindowsImpersonationContext"/>
  +		/// </summary>
  +		/// <remarks>
  +		/// <para>
   		/// Helper class to expose the <see cref="WindowsImpersonationContext"/>
   		/// through the <see cref="IDisposable"/> interface.
  -		/// </summary>
  +		/// </para>
  +		/// </remarks>
   		private sealed class DisposableImpersonationContext : IDisposable
   		{
   			private readonly WindowsImpersonationContext m_impersonationContext;
   
  +			/// <summary>
  +			/// Constructor
  +			/// </summary>
  +			/// <param name="impersonationContext">the impersonation context being wrapped</param>
  +			/// <remarks>
  +			/// <para>
  +			/// Constructor
  +			/// </para>
  +			/// </remarks>
   			public DisposableImpersonationContext(WindowsImpersonationContext impersonationContext)
   			{
   				m_impersonationContext = impersonationContext;
   			}
   
  +			/// <summary>
  +			/// Revert the impersonation
  +			/// </summary>
  +			/// <remarks>
  +			/// <para>
  +			/// Revert the impersonation
  +			/// </para>
  +			/// </remarks>
   			public void Dispose()
   			{
   				m_impersonationContext.Undo();
  @@ -329,7 +372,6 @@
   		}
   
   		#endregion
  -
   	}
   }