+2006-02-01 Atsushi Enomoto <atsushi@ximian.com>
+
+ * ConfigurationElement.cs : ListErrors() and SetPropertyValue()
+ are protected.
+ * ConfigurationSection.cs : the .ctor() is protected.
+ * ConfigurationElementCollection.cs : CollectionType is public.
+ Count and BaseAdd() are not virtual.
+ * ConfigurationPropertyCollection.cs : Count is not virtual.
+
+2006-02-01 Chris Toshok <toshok@ximian.com>
+
+ * ConfigurationElement.cs: revert the patch that stores and writes
+ out xmlns attributes for all elements.
+
+ * ClientConfigurationSystem.cs: SupportsUserConfig == false.
+
+ * AppSettingsSection.cs (GetRuntimeObject): call col.SetReadOnly()
+ only if SupportsUserConfig != true.
+
+ * ConfigurationManager.cs (ConfigurationSystem): add a property
+ like ConfigurationFactory, and use it instead of the private field
+ throughout.
+
+2006-01-26 Chris Toshok <toshok@ximian.com>
+
+ * SectionGroupInfo.cs (ReadContent): handle "location" (seemingly)
+ correctly.
+
+ * InternalConfigurationRoot.cs: misc logical additions. still
+ isn't useful.
+
+ * ConfigurationManager.cs (OpenExeConfigurationInternal): throw an
+ exception if both calling_assembly and exePath are null. Allow
+ the exePath to be a path to a config file as well, checking to see
+ if it ends in .config before appending.
+ (OpenExeConfiguration): stop blindly passing
+ Assembly.GetCallingAssembly. I'm assuming this will likely break
+ .dll.config usage. need to investigate that (and write more unit
+ tests.)
+ (GetSection): call configSystem.GetSection.
+ (RefreshSection): call configSystem.RefreshSection.
+ (ChangeConfigurationSystem): modeled after the
+ ConfigurationSettings System.Web hack - allow
+ WebConfigurationManager to replace the current
+ IInternalConfigSystem.
+
+ * InternalConfigurationHost.cs (InternalConfigurationHost): make
+ abstract, and remove all the NotImplenmentedException's.
+
+ * ConfigurationElement.cs (DeserializeElement): store off the xml
+ namespace if there is one.
+ (SerializeElement): write out the namespace if there was one.
+
+ * ClientConfigurationSystem.cs: new class, based on some stack
+ traces I've seen in tests. Kinda (well, not *kinda*..) hacky.
+
+ * Configuration.cs (NamespaceDeclared): implement.
+ (Load): don't swallow all exceptions, just the ones raised when we
+ open the stream for reading.
+ (ReadConfigFile): handle xmlns.
+
+2006-01-25 Chris Toshok <toshok@ximian.com>
+
+ * ConfigInfo.cs (ThrowException): throw a
+ ConfigurationErrorsException, not a ConfigurationException.
+
+ * SectionGroupInfo.cs (ReadContent): throw an exception
+ unconditionally if we see a <location>. they aren't valid in
+ section groups.
+
+2006-01-25 Chris Toshok <toshok@ximian.com>
+
+ * KeyValueInternalCollection.cs: don't use a nested collection,
+ just defer to our base class. This fixes usage of
+ ConfigurationManager.AppSettings.Keys.
+
+2006-01-13 Chris Toshok <toshok@ximian.com>
+
+ * AppSettingsSection.cs (GetRuntimeObject): only access
+ Settings[key] once per iteration.
+
+2006-01-09 Chris Toshok <toshok@ximian.com>
+
+ * ConfigurationManager.cs (AppSettings): just return
+ AppSettingsSection.GetRuntimeObject() here.
+
+ * AppSettingsSection.cs: fix the "file" property to match dumper
+ output.
+ (GetRuntimeObject): this returns a KeyValueInternalCollection in
+ MS's implementation.
+
+2006-01-09 Chris Toshok <toshok@ximian.com>
+
+ * ElementInformation.cs (Validator): if propertyInfo == null,
+ return a DefaultValidator instance.
+
+2006-01-09 Chris Toshok <toshok@ximian.com>
+
+ * AppSettingsSection.cs (.cctor): specify null for
+ validator/converter.
+
+ * ProtectedProviderSettings.cs (.cctor): specify null for
+ validator/converter.
+
+2006-01-03 Chris Toshok <toshok@ximian.com>
+
+ * Configuration.cs (SaveAs): open with FileMode.OpenOrCreate so we
+ can save to a new file.
+ (CreateSection): don't bother to set the section information's
+ Name here. we'll do it in SectionInfo.CreateInstance.
+
+ * ProtectedConfiguration.cs (Section): new static property so we
+ can remove all the GetSection calls.
+ (GetProvider): load a named provider, optionally throwing an
+ exception if it's not found.
+
+ * InternalConfigurationHost.cs (EncryptSection, DecryptSection):
+ make these private interface implementations, and call
+ protectedSection.{EncryptSection,DecryptSection}.
+
+ * ProtectedConfigurationSection.cs (EncryptSection,
+ DecryptSection): add these two calls. They really shouldn't be
+ here, but I saw them in an MS stack trace and thought "why not?".
+
+ * ConfigurationSection.cs (SectionInformation): don't set
+ attributes here, that's done in SectionInfo.CreateInstance.
+ (DeserializeSection): shoehorn in the decryption stuff here. It
+ doesn't belong here, and I've added a MonoTODO about it. It
+ should live someplace like SectionInfo.ReadData (which would make
+ it similar to the encryption stuff in .WriteData).
+
+ * SectionInformation.cs (IsProtected): remove the special flag,
+ just return true if we have a non-null protection_provider.
+ (ProtectSection): do nothing but try to instantiate the named
+ provider.
+ (UnprotectSection): null out protection_provider.
+
+ * DpapiProtectedConfigurationProvider.cs: move the
+ NotSupportedExceptions to Decrypt/Encrypt so we don't bomb out
+ when parsing our machine.config file.
+
+ * RsaProtectedConfigurationProvider.cs: initial implementation.
+ much is missing (OAEP support, key importing, adding/deleting
+ keys), but it can be used.
+
+2006-01-02 Chris Toshok <toshok@ximian.com>
+
+ * RsaProtectedConfigurationProvider.cs: implement the
+ CspProviderName and UseOAEP properties..
+
+2006-01-02 Chris Toshok <toshok@ximian.com>
+
+ * ProtectedConfigurationSection.cs: flesh this out (and add logic
+ to instantiate providers, based on some of the standalone test
+ exception stack traces.)
+
+ * ProtectedConfiguration.cs: new implementation.
+
+ * ProtectedConfigurationProviderCollection.cs: new
+ implementation.
+
+ * ProtectedProviderSettings.cs: new implementation.
+
+ * ProtectedConfigurationProvider.cs: trim the superclass's name.
+
+ * RsaProtectedConfigurationProvider.cs: stubbed, unimplemented.
+
+ * DpapiProtectedConfigurationProvider.cs: add stubbed
+ implementation that throws NotSupportedException telling people
+ they should be using RsaProtectedConfigurationProvider.
+
+2006-01-02 Chris Toshok <toshok@ximian.com>
+
+ * DefaultSection.cs (Properties): implement.
+
+ * IgnoreSection.cs: move from lazily creating the properties
+ collection to sharing a single one across all instances.
+
+ * ConfigurationLockCollection.cs (IsReadOnly): fix compiler warning.
+
+ * ConfigurationElementCollection.cs (BaseAdd) remove logic to
+ remove an old matching element.
+ (BaseGetKey): throw an exception if @index is out of range.
+
+ * SectionInformation.cs (SectionName): just return name, like Name
+ does.. redundant, but it matches tests.
+ (GetRawXml): implement.
+ (SetRawXml): implement.
+
+ * ConfigurationSection.cs (SectionInformation): fill in
+ sectionInformation.Type before returning.
+ (DeserializeSection): save off the raw xml to our
+ SectionInformation.
+
+ * ConfigurationElement.cs (LockItem): implement.
+ (DeserializeElement): add support for the "lockItem" attribute.
+
+2005-12-16 Chris Toshok <toshok@ximian.com>
+
+ * ConfigurationLockCollection.cs (Add): only add the name if it's
+ not already there.
+ (IsReadOnly): always return false for the time being, in the
+ non-exceptional case.
+
+2005-12-15 Chris Toshok <toshok@ximian.com>
+
+ * ConfigurationElement.cs (LockAllAttributesExcept): implement.
+ (LockAllElementsExcept): implement.
+ (DeserializeElement): handle the built-in attributes (lock* for
+ the time being).
+
+2005-12-15 Chris Toshok <toshok@ximian.com>
+
+ * ConfigurationLockCollection.cs (..ctor): don't call Populate.
+ (Populate): nuke.
+ (CheckName): make sure the passes in name is valid for this type
+ of lock collection.
+ (Add): call CheckName, and set is_modified to true.
+ (Clear): set is_modified.
+ (IsReadOnly): add plausable implementation, including exception in
+ the case where the name isn't found.
+ (Remove): set is_modified.
+ (SetFromList): implement.
+ (get_AttributeList): implement.
+ (set_IsModified): add internal setter so we can clear the modified
+ flag.
+
2005-12-12 Chris Toshok <toshok@ximian.com>
* AppSettingsSection.cs (DeserializeElement): provide rather naive