1 2006-12-27 Vladimir Krasnov <vladimirk@mainsoft.com>
3 * ConfigurationElementCollection.cs: fixed BaseAdd, looking for
4 identical element when collection type is not alternate
6 2006-12-27 Vladimir Krasnov <vladimirk@mainsoft.com>
8 * ConnectionStringSettingsCollection.cs: made connection string key
11 2006-12-27 Atsushi Enomoto <atsushi@ximian.com>
13 * ConfigurationElementCollection.cs : fixed BaseAdd() with
14 throwIfExists to not raise an error for identical element
15 but for different element which shares the same key. Fix by
18 2006-12-21 Vladimir Krasnov <vladimirk@mainsoft.com>
20 * ConfigurationProperty.cs: fixed DefaultValue of type Enum
22 2006-12-10 Konstantin Triger <kostat@mainsoft.com>
24 * ConfigurationElement.cs: Delegate parameter checking and default
25 assigning to Configuratin property.
26 * ConfigurationProperty.cs:
27 Ensure the TypeConvert and Validator always exist.
28 Ensure the primitive types are properly initialized.
30 2006-12-09 Vladimir Krasnov <vladimirk@mainsoft.com>
32 * ConfigurationElementCollection.cs
33 * ConfigurationRemoveElement.cs: fixed key for <remove> element in
34 ConfigurationRemoveElement class
36 2006-11-28 Marek Habersack <grendello@gmail.com>
38 * SectionGroupInfo.cs: Implement merging of section groups with
39 the same names and parents.
41 * ConfigInfo.cs: Add an abstract method for merging sections.
43 * SectionInfo.cs: Add implementation of an abstract base method
45 2006-08-23 Konstantin Triger <kostat@mainsoft.com>
47 * SectionInfo.cs: refactoring - remove unneeded bool? usage.
49 2006-11-05 Vladimir Krasnov <vladimirk@mainsoft.com>
51 * added: ConfigurationRemoveElement.cs, common element for <remove>
52 * ConnectionStringSettingsCollection.cs: reverted last fix for
54 * ConfigurationElementCollection.cs: fixed the way that
55 OnDeserializeUnrecognizedElement method handles <remove> element
57 2006-11-02 Vladimir Krasnov <vladimirk@mainsoft.com>
59 * ConfigurationElement.cs: typo in DefaultCollectionProperty
62 2006-10-30 Joel Reed <joel.reed@ddiworld.com>
64 * NameValueConfigurationCollection.cs: Implement the Properties
67 2006-08-23 Konstantin Triger <kostat@mainsoft.com>
69 * ConfigurationLocation.cs: do not read root element, correctly close stream.
70 * Configuration.cs: use ReadData for nested content to throw if location
71 elements are encounterd.
72 In constructor taking parent Configurqation: do not call Init and so avoid
73 rereading config file.
75 2006-09-05 Vladimir Krasnov <vladimirk@mainsoft.com>
77 * NameValueConfigurationElement.cs: fixed functionality
78 * ConfigurationElementCollection.cs,
79 ConnectionStringSettingsCollection.cs: fixed <remove> element in
80 connectionStrings section
82 2006-08-23 Konstantin Triger <kostat@mainsoft.com>
84 * ConfigurationSection.cs: for net 1.1 SectionHandlers: return null in case
85 RawXml is null, as net 1.1 does.
87 2006-08-17 Vladimir Krasnov <vladimirk@mainsoft.com>
89 * ConfigurationFileMap.cs: added TARGET_JVM on not supported members
92 2006-07-07 Atsushi Enomoto <atsushi@ximian.com>
94 * ConfigurationManager.cs : OpenExeConfiguration(null) should still
95 work. This is required for embedded scenario.
97 2006-06-10 Atsushi Enomoto <atsushi@ximian.com>
99 * SectionGroupInfo.cs : skip <dllmap> in configuration.
101 2006-05-14 Atsushi Enomoto <atsushi@ximian.com>
103 * ConfigurationManager.cs: since ConfigurationSystem is different
104 for web.config, cast from ConfigurationSection to runtime object
105 should be done at GetSection().
106 This really fixed bug #78372.
108 2006-05-12 Atsushi Enomoto <atsushi@ximian.com>
110 * Configuration.cs : configPath is null for machine.config, so don't
111 use it. Use streamName instead. To my understanding, this should
114 2006-05-10 Atsushi Enomoto <atsushi@ximian.com>
116 * ConnectionStringSettings.cs : it seems that "name" property
117 could be null i.e. there is no StringValidator.
118 * StringValidator.cs : allow null.
120 2006-05-10 Atsushi Enomoto <atsushi@ximian.com>
122 * ConfigurationManager.cs : use GetCallingAssembly() instead of
123 GetEntryAssembly() which possibly returns null (e.g. nunit) in
124 OpenExeConfiguration(). Several nunit test failures are gone.
126 2006-05-10 Atsushi Enomoto <atsushi@ximian.com>
128 * ConnectionStringSettings.cs : oops, this API fix broke standalone
131 2006-05-10 Atsushi Enomoto <atsushi@ximian.com>
133 * ConfigurationElement.cs,
134 ConfigurationErrorsException.cs,
135 ConfigurationUserLevel.cs,
136 ConfigurationPropertyOptions.cs,
137 ConnectionStringSettings.cs : assorted minor corcompare fixes.
139 2006-05-10 Atsushi Enomoto <atsushi@ximian.com>
141 * Configuration.cs : some kind of refactoring is absolutely needed
142 here. Reuse RawXml from parentSection when data was not available
143 on current section. This should fix bug #78353.
145 2006-05-10 Atsushi Enomoto <atsushi@ximian.com>
147 * ConfigurationElement.cs,
149 in some cases RawXml was set null string, so skip such cases.
150 * Configuration.cs : support IConfigurationSectionHandler here.
151 * ConfigurationManager.cs : GetSection() now returns name value
152 collection, not a section.
153 * ConfigurationSection.cs : added SectionHandler for
154 IConfigurationSectionHandler support, and use its Create() in
156 * ClientConfigurationSystem.cs :
157 use GetRuntimeObject() in GetSection(). Thus now
158 ConfigurationManager.GetSection() returns a runtime object.
161 2006-04-28 Atsushi Enomoto <atsushi@ximian.com>
163 * SectionGroupInfo.cs :
164 sections which are defined in sectionGroups could be directly
165 referenced, so search corresponding section recursively.
166 * DefaultSection.cs : It does not reject unrecognized contents.
168 2006-04-26 Chris Toshok <toshok@ximian.com>
170 * SectionInformation.cs (.ctor): add MonoTODO about the default
171 value for require_permission.
172 (RequirePermission): implement the getter/setter for this so
173 Atsushi's previous commit doesn't break everything :)
175 2006-04-26 Atsushi Enomoto <atsushi@ximian.com>
178 SectionInfo.cs : added support for "requirePermission" attribute
179 in "section" element. This fixes bug #77957.
181 2006-04-25 Chris Toshok <toshok@ximian.com>
183 * ConfigurationElementCollection.cs (Reset): it makes no sense to
184 pass the typename to CreateNewElementInternal. the argument is
185 the elementname. pass null instead.
188 2006-02-01 Atsushi Enomoto <atsushi@ximian.com>
190 * ConfigurationElement.cs : ListErrors() and SetPropertyValue()
192 * ConfigurationSection.cs : the .ctor() is protected.
193 * ConfigurationElementCollection.cs : CollectionType is public.
194 Count and BaseAdd() are not virtual.
195 * ConfigurationPropertyCollection.cs : Count is not virtual.
197 2006-02-01 Chris Toshok <toshok@ximian.com>
199 * ConfigurationElement.cs: revert the patch that stores and writes
200 out xmlns attributes for all elements.
202 * ClientConfigurationSystem.cs: SupportsUserConfig == false.
204 * AppSettingsSection.cs (GetRuntimeObject): call col.SetReadOnly()
205 only if SupportsUserConfig != true.
207 * ConfigurationManager.cs (ConfigurationSystem): add a property
208 like ConfigurationFactory, and use it instead of the private field
211 2006-01-26 Chris Toshok <toshok@ximian.com>
213 * SectionGroupInfo.cs (ReadContent): handle "location" (seemingly)
216 * InternalConfigurationRoot.cs: misc logical additions. still
219 * ConfigurationManager.cs (OpenExeConfigurationInternal): throw an
220 exception if both calling_assembly and exePath are null. Allow
221 the exePath to be a path to a config file as well, checking to see
222 if it ends in .config before appending.
223 (OpenExeConfiguration): stop blindly passing
224 Assembly.GetCallingAssembly. I'm assuming this will likely break
225 .dll.config usage. need to investigate that (and write more unit
227 (GetSection): call configSystem.GetSection.
228 (RefreshSection): call configSystem.RefreshSection.
229 (ChangeConfigurationSystem): modeled after the
230 ConfigurationSettings System.Web hack - allow
231 WebConfigurationManager to replace the current
232 IInternalConfigSystem.
234 * InternalConfigurationHost.cs (InternalConfigurationHost): make
235 abstract, and remove all the NotImplenmentedException's.
237 * ConfigurationElement.cs (DeserializeElement): store off the xml
238 namespace if there is one.
239 (SerializeElement): write out the namespace if there was one.
241 * ClientConfigurationSystem.cs: new class, based on some stack
242 traces I've seen in tests. Kinda (well, not *kinda*..) hacky.
244 * Configuration.cs (NamespaceDeclared): implement.
245 (Load): don't swallow all exceptions, just the ones raised when we
246 open the stream for reading.
247 (ReadConfigFile): handle xmlns.
249 2006-01-25 Chris Toshok <toshok@ximian.com>
251 * ConfigInfo.cs (ThrowException): throw a
252 ConfigurationErrorsException, not a ConfigurationException.
254 * SectionGroupInfo.cs (ReadContent): throw an exception
255 unconditionally if we see a <location>. they aren't valid in
258 2006-01-25 Chris Toshok <toshok@ximian.com>
260 * KeyValueInternalCollection.cs: don't use a nested collection,
261 just defer to our base class. This fixes usage of
262 ConfigurationManager.AppSettings.Keys.
264 2006-01-13 Chris Toshok <toshok@ximian.com>
266 * AppSettingsSection.cs (GetRuntimeObject): only access
267 Settings[key] once per iteration.
269 2006-01-09 Chris Toshok <toshok@ximian.com>
271 * ConfigurationManager.cs (AppSettings): just return
272 AppSettingsSection.GetRuntimeObject() here.
274 * AppSettingsSection.cs: fix the "file" property to match dumper
276 (GetRuntimeObject): this returns a KeyValueInternalCollection in
279 2006-01-09 Chris Toshok <toshok@ximian.com>
281 * ElementInformation.cs (Validator): if propertyInfo == null,
282 return a DefaultValidator instance.
284 2006-01-09 Chris Toshok <toshok@ximian.com>
286 * AppSettingsSection.cs (.cctor): specify null for
289 * ProtectedProviderSettings.cs (.cctor): specify null for
292 2006-01-03 Chris Toshok <toshok@ximian.com>
294 * Configuration.cs (SaveAs): open with FileMode.OpenOrCreate so we
295 can save to a new file.
296 (CreateSection): don't bother to set the section information's
297 Name here. we'll do it in SectionInfo.CreateInstance.
299 * ProtectedConfiguration.cs (Section): new static property so we
300 can remove all the GetSection calls.
301 (GetProvider): load a named provider, optionally throwing an
302 exception if it's not found.
304 * InternalConfigurationHost.cs (EncryptSection, DecryptSection):
305 make these private interface implementations, and call
306 protectedSection.{EncryptSection,DecryptSection}.
308 * ProtectedConfigurationSection.cs (EncryptSection,
309 DecryptSection): add these two calls. They really shouldn't be
310 here, but I saw them in an MS stack trace and thought "why not?".
312 * ConfigurationSection.cs (SectionInformation): don't set
313 attributes here, that's done in SectionInfo.CreateInstance.
314 (DeserializeSection): shoehorn in the decryption stuff here. It
315 doesn't belong here, and I've added a MonoTODO about it. It
316 should live someplace like SectionInfo.ReadData (which would make
317 it similar to the encryption stuff in .WriteData).
319 * SectionInformation.cs (IsProtected): remove the special flag,
320 just return true if we have a non-null protection_provider.
321 (ProtectSection): do nothing but try to instantiate the named
323 (UnprotectSection): null out protection_provider.
325 * DpapiProtectedConfigurationProvider.cs: move the
326 NotSupportedExceptions to Decrypt/Encrypt so we don't bomb out
327 when parsing our machine.config file.
329 * RsaProtectedConfigurationProvider.cs: initial implementation.
330 much is missing (OAEP support, key importing, adding/deleting
331 keys), but it can be used.
333 2006-01-02 Chris Toshok <toshok@ximian.com>
335 * RsaProtectedConfigurationProvider.cs: implement the
336 CspProviderName and UseOAEP properties..
338 2006-01-02 Chris Toshok <toshok@ximian.com>
340 * ProtectedConfigurationSection.cs: flesh this out (and add logic
341 to instantiate providers, based on some of the standalone test
342 exception stack traces.)
344 * ProtectedConfiguration.cs: new implementation.
346 * ProtectedConfigurationProviderCollection.cs: new
349 * ProtectedProviderSettings.cs: new implementation.
351 * ProtectedConfigurationProvider.cs: trim the superclass's name.
353 * RsaProtectedConfigurationProvider.cs: stubbed, unimplemented.
355 * DpapiProtectedConfigurationProvider.cs: add stubbed
356 implementation that throws NotSupportedException telling people
357 they should be using RsaProtectedConfigurationProvider.
359 2006-01-02 Chris Toshok <toshok@ximian.com>
361 * DefaultSection.cs (Properties): implement.
363 * IgnoreSection.cs: move from lazily creating the properties
364 collection to sharing a single one across all instances.
366 * ConfigurationLockCollection.cs (IsReadOnly): fix compiler warning.
368 * ConfigurationElementCollection.cs (BaseAdd) remove logic to
369 remove an old matching element.
370 (BaseGetKey): throw an exception if @index is out of range.
372 * SectionInformation.cs (SectionName): just return name, like Name
373 does.. redundant, but it matches tests.
374 (GetRawXml): implement.
375 (SetRawXml): implement.
377 * ConfigurationSection.cs (SectionInformation): fill in
378 sectionInformation.Type before returning.
379 (DeserializeSection): save off the raw xml to our
382 * ConfigurationElement.cs (LockItem): implement.
383 (DeserializeElement): add support for the "lockItem" attribute.
385 2005-12-16 Chris Toshok <toshok@ximian.com>
387 * ConfigurationLockCollection.cs (Add): only add the name if it's
389 (IsReadOnly): always return false for the time being, in the
390 non-exceptional case.
392 2005-12-15 Chris Toshok <toshok@ximian.com>
394 * ConfigurationElement.cs (LockAllAttributesExcept): implement.
395 (LockAllElementsExcept): implement.
396 (DeserializeElement): handle the built-in attributes (lock* for
399 2005-12-15 Chris Toshok <toshok@ximian.com>
401 * ConfigurationLockCollection.cs (..ctor): don't call Populate.
403 (CheckName): make sure the passes in name is valid for this type
405 (Add): call CheckName, and set is_modified to true.
406 (Clear): set is_modified.
407 (IsReadOnly): add plausable implementation, including exception in
408 the case where the name isn't found.
409 (Remove): set is_modified.
410 (SetFromList): implement.
411 (get_AttributeList): implement.
412 (set_IsModified): add internal setter so we can clear the modified
415 2005-12-12 Chris Toshok <toshok@ximian.com>
417 * AppSettingsSection.cs (DeserializeElement): provide rather naive
418 version of the file="" handling. It's enough to make our tests
421 2005-12-11 Chris Toshok <toshok@ximian.com>
423 * ConnectionStringsSection.cs (..cctor): use "" instead of null
424 for the name of the default collection.
426 * AppSettingsSection.cs (..cctor): create a property for the
428 (DeserializeElement): call base.DeserializeElement.
429 (File): index off the property, not the name.
430 (Settings): don't use an private variable here, use
433 * ConfigurationManager.cs (GetSection): GetEntryAssembly returns
434 null for new app domains. so deal with this by calling
435 GetCallingAssembly if it's null. This is probably still wrong but
436 it doesn't NRE in xsp2.
437 (AppSettings): remove MonoTODO.
439 * KeyValueConfigurationElement.cs (..ctor): new method, create the
440 ConfigurationProperty's and the collection here.
441 (.ctor): add internal arg-less ctor.
442 (Key): use keyProp instead of "key".
443 (Value): use vlaueProp instead of "value".
444 (Properties): return our class's properties.
446 * KeyValueConfigurationCollection.cs (CreateNewElement): use the
448 (GetElementKey): re-enable the BaseIndexOf test.
450 2005-12-02 Chris Toshok <toshok@ximian.com>
452 * Configuration.cs (Save): call WriteStartDocument.
454 * ConnectionStringSettingsCollection.cs (CreateNewElement): use
455 parameter-less ctor to keep from generating exceptions when using
458 2005-12-02 Chris Toshok <toshok@ximian.com>
460 * ConnectionStringSettings.cs: tabify, fix default values, and add
461 a string validator for "name".
463 2005-12-02 Chris Toshok <toshok@ximian.com>
465 * CommaDelimitedStringCollectionConverter.cs (ConvertTo): change
466 the type check away from an exact check for
467 CommaDelimitedStringCollection to an assignable test from
468 StringCollection. This is due to the fact that AuthorizationRule
469 doesn't create CommaDelimitedStringCollections, for some odd
470 reason. It uses StringCollections.
472 * PropertyInformation.cs (Value): remove the case for
473 IsDefaultCollection - it's not necessary, as the property is an
476 * ConnectionStringSettings.cs: fix formatting and remove some
479 * ConnectionStringSettingsCollection.cs: same.
481 * ConnectionStringsSection.cs: same.
483 * ConfigurationElement.cs (SerializeToXmlElement): don't write the
484 enclosing start/end elements if the elementName is null or "".
485 this fixes the case for the DefaultCollections (at least in the
486 case of connectionStrings).
488 * IgnoreSection.cs (Properties): remove the MonoTODO.
490 * SectionInfo.cs (WriteData): remove the "<!-- dd -->" output.
492 2005-11-28 Chris Toshok <toshok@ximian.com>
494 * ProviderSettings.cs: use ConfigurationProperty's to implement
497 2005-11-24 Chris Toshok <toshok@ximian.com>
499 * ConfigurationProperty.cs (Validate): add internal method.
501 2005-11-24 Chris Toshok <toshok@ximian.com>
503 * ConfigurationElement.cs (ElementProperty): make this protected
504 internal virtual instead of public.
505 (SetPropertyValue): add a validator call and a blurb about the
506 code based on information gleaned from tests.
507 (set_Item (string)): call SetPropertyValue in the setter.
509 2005-11-14 Chris Toshok <toshok@ximian.com>
511 * CommaDelimitedStringCollection.cs: reformat things a bit, and
512 flag ToString() as override.
514 * DefaultSection.cs: new stubbed out implementation.
516 * CommaDelimitedStringCollectionConverter.cs: new implementation.
518 2005-11-10 Chris Toshok <toshok@ximian.com>
520 * AppSettingsSection.cs (DeserializeElement): stop explicitly
521 calling Settings.DeserializeElement, as the DefaultCollection
524 * ConfigurationElement.cs (DeserializeElement): rework the loop
525 here so that we actually loop over all the content elements.
527 2005-11-09 Chris Toshok <toshok@ximian.com>
529 * ConfigurationElement.cs: Add support for DefaultCollection
532 * PropertyInformation.cs (PropertyInformation.Value): add case for
535 * SectionGroupInfo.cs (SectionGroupInfo.ReadConfig): when we read
536 a "type" attribute, make sure the cached System.Type is cleared.
538 2005-10-25 Chris Toshok <toshok@ximian.com>
540 * InfiniteTimeSpanConverter.cs: new implementation.
542 * InfiniteIntConverter.cs: new implementation.
544 * GenericEnumConverter.cs: new implementation.
546 * Configuration.cs: we don't need to check with "is" after we use
547 "as".. just check for null-ness.
549 * KeyValueConfigurationCollection.cs: GetElementKey should throw
550 NRE if element == null.
552 * CommaDelimitedStringCollection.cs: raise the correct exceptions
553 in the read only case, and return null from ToString if there are
556 2005-10-25 Chris Toshok <toshok@ximian.com>
558 * PositiveTimeSpanValidatorAttribute.cs: new implementation.
560 * PositiveTimeSpanValidator.cs: new implementation.
562 2005-10-24 Chris Toshok <toshok@ximian.com>
564 * TimeSpanSecondsOrInfiniteConverter.cs: new implementation.
566 * TypeNameConverter.cs: new implementation.
568 * WhiteSpaceTrimStringConverter.cs: new implementation.
570 2005-10-24 Chris Toshok <toshok@ximian.com>
572 * AppSettingsSection.cs (DeserializeElement, SerializeSection):
573 split the behavior based on if File == "". If it is, we do the
574 default. otherwise we throw NIE.
576 * ConnectionStringsSection.cs (DeserializeElement): we shouldn't
577 need this, but we do until the IsDefaultCollection stuff is fixed.
579 * ConfigurationElementCollection.cs
580 (OnDeserializeUnrecognizedElement): for clearElementName, make
581 sure we have no attributes.
583 * ConnectionStringSettingsCollection.cs (get_Properties): for now
584 just chain up to base.Properties.
586 * ConfigurationElement.cs (ReflectProperties): do the default
587 value/property type check in a more robust way, using
590 2005-10-24 Chris Toshok <toshok@ximian.com>
592 * ConfigurationElement.cs: treat
593 ConfigurationProperty.NoDefaultValue the same as null when we're
594 checking the default value's type. this fixes t13 and 14.
596 * ConnectionStringsSection.cs (ConnectionStrings): fix the
597 DefaultValue in the ConfigurationPropertyAttribute.
599 2005-10-24 Chris Toshok <toshok@ximian.com>
601 * KeyValueConfigurationCollection.cs (GetElementKey): sacrifice
602 one test to get another working. Return a valid key even if the
603 element is not in this collection.
604 (get_ThrowOnDuplicate): return false.
606 * ConfigurationElementCollection.cs (BaseAdd): if we're adding an
607 element with the same key, overwrite the old one (remove the old
608 one after inserting the new one). Also, re-enable the throwing of
609 exceptions if ThrowOnDuplicate == true.
611 2005-10-24 Chris Toshok <toshok@ximian.com>
613 * AppSettingsSection.cs (Settings): fix ConfigurationProperty
616 * ProtectedConfigurationSection.cs (Providers): same.
618 2005-10-12 Chris Toshok <toshok@ximian.com>
620 * ConfigurationPermission.cs: flesh out as per tests.
622 2005-10-11 Chris Toshok <toshok@ximian.com>
624 * ConfigurationProperty.cs: don't use null to mean no default
625 value, use NoDefaultValue.
627 2005-10-11 Chris Toshok <toshok@ximian.com>
629 * KeyValueConfigurationCollection.cs (GetElementKey): duh.
630 BaseGet calls GetElementKey, so we were hitting an infinite
631 recursion here. Use BaseIndexOf instead.
633 2005-10-07 Chris Toshok <toshok@ximian.com>
635 * InternalConfigurationHost.cs: some interface work, adding in the
638 * ConfigurationProperty.cs: remove debug spew.
640 * Configuration.cs: add NIE'd NamespaceDeclared property.
642 * ElementInformation.cs: add NIE'd Errors property.
644 * PropertyInformationCollection.cs: add NIE'd GetObjectData().
646 * ConfigurationManager.cs: quite a bit of new work here. Some
647 definie TODO's still though.
649 2005-10-07 Chris Toshok <toshok@ximian.com>
651 * ConfigurationErrorsException.cs (.ctor): for the (string)
652 overload, chain up to the base (string) ctor.
654 2005-10-07 Chris Toshok <toshok@ximian.com>
656 * ConfigurationElement.cs (ElementMap.ReflectProperties): make
657 sure the type of the default value is compatible with that of the
658 property itself, and throw ConfigurationErrorsException if they
659 don't match. Fixes t12.
661 2005-10-07 Chris Toshok <toshok@ximian.com>
663 * ConfigHelper.cs: remove some unused code.
665 * ConfigurationProperty.cs: disambiguate the ctor we chain to.
667 * ConfigurationElement.cs (ElementProperty): implement.
668 (ElementMap.ReflectProperties): make DefaultValidator the default
671 2005-10-06 Chris Toshok <toshok@ximian.com>
673 * KeyValueConfigurationElement.cs: uncomment out some stuff.
674 (Properties): just return base.Properties. Not sure why they
675 override this, as the base class's implementation passes our test.
677 * KeyValueConfigurationCollection.cs (Add): for the keyValue
678 overload, call keyValue.Init as the unit test stack traces
679 indicates that'9s where it's called. For the string,string
680 overload, just call the keyValue overload instead of calling
682 (CreateNewElement): just use the name/value ctor, and specify ""
684 (GetElementKey): this function always returns "" for elements that
685 haven't been added to the collection. Once theyre added, it seems
686 to always return keyValue.Key.
687 (Properties): the unit tests show this returns a 0 length
690 2005-10-05 Chris Toshok <toshok@ximian.com>
692 * ConfigurationPermissionAttribute.cs: stub out.
694 2005-10-05 Chris Toshok <toshok@ximian.com>
696 * TimeSpanMinutesOrInfiniteConverter.cs: fill in the
699 2005-10-05 Chris Toshok <toshok@ximian.com>
701 * TimeSpanSecondsConverter.cs: new implementation.
703 2005-10-05 Chris Toshok <toshok@ximian.com>
705 * TimeSpanMinutesConverter.cs: flesh out implementation.
707 * ConfigurationConverterBase.cs: make all subclasses work with
708 strings only, since that's what seems to manifest itself in the
711 2005-10-05 Chris Toshok <toshok@ximian.com>
713 * ConfigurationLockCollection.cs: add NIE'd AttributeList
716 * ConfigurationConverterBase.cs: add MonoTODO'd CanConvertFrom and
717 CanConvertTo methods.
719 * ConfigurationSectionGroup.cs: add NIE'd IsDeclared property.
721 * ProtectedConfigurationSection.cs: add NIE'd properties.
723 * ConfigurationElementCollection.cs: add MonoTODO'd IsReadOnly
724 and SetReadOnly methods, and have then chain up to the base class.
726 * KeyValueConfigurationCollection.cs: add the class level
727 ConfigurationCollectionAttribute, and add a NIE'ed Properties
730 * ProviderSettingsCollection.cs: add the class level
731 ConfigurationCollectionAttribute, and add a "new" keyword to the
732 this property. Also, nuke the Provider's property.
734 * SectionInformation.cs: add some NEI'd properties.
736 * ConfigurationSection.cs (ResetModified): leave the MonoTODO, but
737 chain up to base class's method instead of throwing NIE.
739 * ConnectionStringSettingsCollection.cs: add the class-level
740 ConfigurationCollectionAttribute, and add the unimplemented
743 * ConfigurationErrorsException.cs: flesh this out, and add a
744 pragma to disable the obsolete warnings from our base class.
746 * ProviderSettings.cs: add unimplemented Properties property.
748 * ConfigurationElement.cs: remove unnecessary
749 EvaluationInformation.
751 * InternalConfigurationRoot.cs: add unimplemented IsDesignTime
754 * ConfigurationProperty.cs: add a missing ctor.
756 * AppSettingsSection.cs: add missing "override" keyword.
758 * ConnectionStringsSection.cs: remove override.
760 * ConfigurationSectionCollection.cs: AllKeys -> Keys, and add
761 unimplemented GetObjectData override.
763 * ConfigurationSectionGroupCollection.cs: same.
765 * ConfigurationCollectionAttribute.cs: add missing CollectionType
768 2005-10-05 Chris Toshok <toshok@ximian.com>
770 * ConfigurationPermission.cs: new implementation.
772 * IgnoreSection.cs: new implementation.
774 2005-10-05 Chris Toshok <toshok@ximian.com>
776 * CommaDelimitedStringCollection.cs: new implementation.
778 2005-10-05 Chris Toshok <toshok@ximian.com>
780 * NameValueConfigurationCollection.cs: new implementation.
782 * NameValueConfigurationElement.cs: new implementation.
784 2005-10-05 Chris Toshok <toshok@ximian.com>
786 * ValidatorCallback.cs: new implementation.
788 * SubclassTypeValidator.cs, SubclassTypeValidatorAttribute.cs: new
791 * CallbackValidator.cs, CallbackValidatorAttribute.cs: new
794 * RegexStringValidator.cs, RegexStringValidatorAttribute.cs: new
797 * LongValidator.cs, LongValidatorAttribute.cs: new implementation.
799 * IntegerValidator.cs, IntegerValidatorAttribute.cs: new
802 * DefaultValidator.cs: new implementation.
804 2005-09-28 Chris Toshok <toshok@ximian.com>
806 * ConfigurationElementCollection.cs: more work on the "<clear />"
807 handling - just skip the element for now. this causes a failure
808 in one test ('<clear hi="bye" />' doesn't throw an exception when
809 it should), but it succeeds for collections that have required
812 * ConnectionStringSettings.cs: providerName isn't a required
815 * AppSettingsSection.cs (.cctor): initialize our "file" Property.
818 (GetRuntimeObject): call the base class method instead of just
821 * ConnectionStringsSection.cs: Add a hacky DeserializeElement
822 method here (that isn't in MS's) for the time being so we actually
823 deserialize our collection.
825 2005-09-28 Chris Toshok <toshok@ximian.com>
827 * KeyValueInternalCollection.cs: found this by way of a stack
828 trace in one of the tests. A NameValueCollection that wraps a
829 KeyValueConfigurationCollection.
831 * Configuration.cs (Init): save off configPath.
832 (EvaluationContext): new, mostly implemented.
833 (GetSectionInstance): use IgnoreSection instead of
835 (Load): don't fail when we can't load a file.
837 * IgnoreSection.cs: replace RuntimeOnlySection with this new
840 * RuntimeOnlySection.cs: nuke.
842 2005-09-27 Chris Toshok <toshok@ximian.com>
844 * TimeSpanMinutesOrInfiniteConverter.cs: this is sealed.
846 2005-09-27 Chris Toshok <toshok@ximian.com>
848 * ConfigurationProperty.cs: add IsDefaultCollection property.
850 2005-09-27 Chris Toshok <toshok@ximian.com>
852 * ConfigurationElementProperty.cs: new file.
854 * ConfigurationLockCollection.cs: new file.
856 * ConfigurationElementCollection.cs
857 (OnDeserializeUnrecognizedElement): make sure we consume the
858 <clear /> element so we don't into an endless loop.
860 * ConfigurationElement.cs: add a bunch of NIE's properties.
862 * ContextInformation.cs: Add NIE'ed IsMachineLevel property.
864 2005-09-23 Chris Toshok <toshok@ximian.com>
866 * AppSettingsSection.cs: fix build and add a couple of TODO'ed
869 2005-09-23 Chris Toshok <toshok@ximian.com>
871 * ProviderSettings.cs (Unmerge): track change to
872 ConfigurationElement.Unmerge.
874 * ConfigurationSection.cs: add functions nuked from
875 ConfigurationElement here.
877 * ConfigurationElementCollection.cs: add DebuggerDisplay attribute
879 (BaseGetAllKeys): returns object[], not string[].
880 (BaseGetKey): returns object, not string.
881 (Unmerge): track change to ConfigurationElement.Unmerge signature.
883 * ConfigurationElement.cs (ConfigurationElement.Unmerge): fix
884 signature (drop the serializeCollectionKey parameter).
887 2005-09-23 Chris Toshok <toshok@ximian.com>
889 * StringValidator.cs: throw ArgumentException instead of
890 ConfigurationErrorsException.
892 2005-09-23 Chris Toshok <toshok@ximian.com>
894 * ConnectionStringsSection.cs: track change to
895 ConfigurationPropertyOptions.
897 * ConfigurationPropertyAttribute.cs, ConfigurationProperty.cs,
898 ProviderSettings.cs: track change to ConfigurationPropertyOptions.
900 * ConnectionStringSettings.cs: track change to
901 ConfigurationProprertyOptions, and add some ConfigurationProperty
904 * ConfigurationPropertyOptions.cs: DefaultCollection ->
905 IsDefaultCollection, Required -> IsRequired.
907 2005-09-22 Chris Toshok <toshok@ximian.com>
909 * PositiveTimeSpanValidator.cs: this lives in
910 System.Web.Configuration, not System.Configuration.
912 2005-09-22 Chris Toshok <toshok@ximian.com>
914 * TimeSpanValidator.cs: change to ArgumentException and alter the
917 2005-09-22 Chris Toshok <toshok@ximian.com>
919 * ExeConfigurationFileMap.cs (ctor): init all the strings to "".
921 2005-07-01 Lluis Sanchez Gual <lluis@novell.com>
923 * ProviderSettings.cs: Implemented properties using property attributes.
924 * ConfigurationElement.cs: Implemented ElementInformation property and
925 moved there all value management.
926 * ProtectedConfigurationProvider.cs: Set the correct base class.
927 * SectionInformation.cs: Added missing AllowExeDefinition property.
928 * TimeSpanValidatorAttribute.cs: Implemented.
929 * StringValidator.cs: Implemented.
930 * ProviderSettingsCollection.cs: Added missing class attribute.
931 * ConfigurationSaveMode.cs: Fix enum values.
932 * ConfigurationElementCollection.cs: Added Init method for initializing
933 elements from properties.
934 * StringValidatorAttribute.cs: Implemented.
935 * ConfigurationLocation.cs: Added support for allowOverride flag.
936 * TimeSpanMinutesOrInfiniteConverter.cs: Created skeleton class.
937 * PositiveTimeSpanValidator.cs: Implemented.
938 * TimeSpanMinutesConverter.cs: Created skeleton class.
939 * SectionInfo.cs: Properly read, store and check the values of AllowLocation,
940 AllowDefinition and AllowExeDefinition.
941 * TimeSpanValidator.cs: Implemented.
942 * ConfigurationConverterBase.cs: Created skeleton class.
943 * InternalConfigurationHost.cs: Implemented IsDefinitionAllowed and
944 VerifyDefinitionAllowed.
945 * ConfigurationManager.cs: That class must be static.
946 * PropertyInformationCollection.cs: Implemented.
947 * Configuration.cs: Added some checks for AllowLocation, AllowDefinition and
948 so on. In Save(), don't forget to save location elements.
949 * ConfigurationProperty.cs: Keep track of collection attributes.
950 * ConfigInfo.cs: Support overrideAllowed flag.
951 * KeyValueConfigurationElement.cs: Define properties using attributes.
952 * PropertyValueOrigin.cs: implemented.
953 * PropertyInformation.cs: Mostly implemented.
954 * SectionGroupInfo.cs: Properly propagate the overrideAllowed flag.
955 * ElementInformation.cs: Mostly implemented.
956 * ConfigurationPropertyAttribute.cs: Set the correct default value.
957 * ConfigurationCollectionAttribute.cs: Implemented.
959 2005-06-23 Lluis Sanchez Gual <lluis@novell.com>
961 * SectionInfo.cs: Set the config host when loading the section.
962 * InternalConfigurationHost.cs: Implemented some basic methods.
963 * Configuration.cs: Find the correct parent for the configuration,
964 taking into accound locations and such. Use Host functions to get
966 * ConfigurationLocationCollection.cs: Added find method.
967 * ConfigInfo.cs: Added Host property.
968 * InternalConfigurationFactory.cs: The InitForConfiguration calls
969 are now done in each correspoding configuration.
970 * SectionGroupInfo.cs: When reading a location element, create
971 a Configuration object for each path specified in the location.
972 * ConfigurationElementCollection.cs: Added the CreateNewElementInternal
973 method, which properly initializes the created element.
974 * ConfigurationLocation.cs: OpenConfiguration now has to read the
975 xml contents. It also has to find the correct parent configuration,
976 if it has not been specified.
978 2005-06-17 Lluis Sanchez Gual <lluis@novell.com>
980 * SectionInfo.cs, ConfigInfo.cs, SectionGroupInfo.cs: Minor api fixes.
981 * ConfigurationPropertyCollection.cs: Added Clear method.
982 * ContextInformation.cs: Implemented.
983 * ConfigurationManager.cs: Implemented some missing methods.
984 Configuration objects are now created through the ConfigurationFactory.
985 * InternalConfigurationHost.cs: Implementation of IInternalConfigHost
986 to be used for exe files and machine.config.
987 * ConfigurationFileMap.cs: Implemented.
988 * Configuration.cs: Read and write config files using the methods that
989 IInternalConfigHost provides.
990 * InternalConfigurationRoot.cs: IInternalConfigRoot stub.
991 * ExeContext.cs: Implemented.
992 * AppSettingsSection.cs: Use the KeyValueConfigurationCollection
993 collection to store values.
994 * KeyValueConfigurationElement.cs: Implemented.
995 * KeyValueConfigurationCollection.cs: Implemented.
996 * InternalConfigurationFactory.cs: An implementation of
997 IInternalConfigConfigurationFactory.
998 * ConfigurationPropertyAttribute.cs: Added missing attributes.
999 * ExeConfigurationFileMap.cs: Implemented.
1001 2005-06-15 Lluis Sanchez Gual <lluis@novell.com>
1003 * ConfigurationElement.cs, ConfigurationErrorsException.cs
1004 SectionInfo.cs, ConnectionStringSettingsCollection.cs,
1005 ConfigurationPropertyCollection.cs, ProtectedConfigurationProvider.cs,
1006 ConfigurationSection.cs, NonEmptyStringConfigurationProperty.cs,
1007 ConfigurationElementCollectionType.cs, Configuration.cs,
1008 ConnectionStringSettings.cs, ConfigurationProperty.cs,
1009 ConfigurationLocationCollection.cs, TimeSpanConfigurationProperty.cs,
1010 ConfigurationAllowDefinition.cs, ConfigInfo.cs,
1011 ConfigurationSectionGroupCollection.cs, AppSettingsSection.cs,
1012 ProviderSettingsCollection.cs, IntegerConfigurationProperty.cs,
1013 SectionGroupInfo.cs, ConfigurationUserLevel.cs,
1014 ConnectionStringsSection.cs, ConfigurationPropertyAttribute.cs,
1015 ConfigurationLocation.cs, ConfigurationSectionCollection.cs,
1016 ConfigurationSectionGroup.cs, RuntimeOnlySection.cs,
1017 ProviderSettings.cs:
1020 * ConfigurationElementCollection.cs: Implemented support for Basic
1021 collection type. Other fixes.
1023 * ConfigurationPropertyFlags.cs: Renamed to ConfigurationPropertyOptions.
1024 * ConfigurationUpdateMode.cs: Renamed to ConfigurationSaveMode.
1026 * SectionInformation.cs, ConfigurationAllowExeDefinition.cs
1027 ConfigurationManager.cs, ConfigurationSaveMode.cs,
1028 ConfigurationValidatorAttribute.cs, ProtectedConfigurationSection.cs,
1029 ConfigurationValidatorBase.cs, ConfigurationPropertyOptions.cs:
1032 * ConfigurationValidationAttribute.cs: Removed.
1034 * ProviderBase.cs: Moved to System.dll.
1036 2005-06-14 Lluis Sanchez Gual <lluis@novell.com>
1038 * AppSettingsSection.cs, ConfigInfo.cs, Configuration.cs
1039 ConfigurationAllowDefinition.cs, ConfigurationElement.cs
1040 ConfigurationElementCollection.cs, ConfigurationElementCollectionType.cs
1041 ConfigurationLocation.cs, ConfigurationLocationCollection.cs
1042 ConfigurationProperty.cs, ConfigurationPropertyAttribute.cs
1043 ConfigurationPropertyCollection.cs, ConfigurationPropertyFlags.cs
1044 ConfigurationSection.cs, ConfigurationSectionCollection.cs
1045 ConfigurationSectionGroup.cs, ConfigurationSectionGroupCollection.cs
1046 ConfigurationUpdateMode.cs, ConfigurationUserLevel.cs
1047 ConfigurationValidationAttribute.cs, ConnectionStringsSection.cs
1048 ConnectionStringSettingsCollection.cs, ConnectionStringSettings.cs
1049 IntegerConfigurationProperty.cs, NonEmptyStringConfigurationProperty.cs
1050 NonEmptyStringFlags.cs, PathLevel.cs, ProtectedConfigurationProvider.cs
1051 ProviderBase.cs, ProviderSettings.cs, ProviderSettingsCollection.cs
1052 RuntimeOnlySection.cs, SectionInfo.cs, SectionGroupInfo.cs
1053 TimeSpanConfigurationProperty.cs, TimeSpanPropertyFlags.cs
1054 TimeSpanSerializedFormat.cs:
1056 Moved from the System assembly.