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
  -
        }
   }
   
  
  
  

Reply via email to