1 2006-04-28 Atsushi Enomoto <atsushi@ximian.com>
3 * SectionGroupInfo.cs :
4 sections which are defined in sectionGroups could be directly
5 referenced, so search corresponding section recursively.
6 * DefaultSection.cs : It does not reject unrecognized contents.
8 2006-04-26 Chris Toshok <toshok@ximian.com>
10 * SectionInformation.cs (.ctor): add MonoTODO about the default
11 value for require_permission.
12 (RequirePermission): implement the getter/setter for this so
13 Atsushi's previous commit doesn't break everything :)
15 2006-04-26 Atsushi Enomoto <atsushi@ximian.com>
18 SectionInfo.cs : added support for "requirePermission" attribute
19 in "section" element. This fixes bug #77957.
21 2006-04-25 Chris Toshok <toshok@ximian.com>
23 * ConfigurationElementCollection.cs (Reset): it makes no sense to
24 pass the typename to CreateNewElementInternal. the argument is
25 the elementname. pass null instead.
28 2006-02-01 Atsushi Enomoto <atsushi@ximian.com>
30 * ConfigurationElement.cs : ListErrors() and SetPropertyValue()
32 * ConfigurationSection.cs : the .ctor() is protected.
33 * ConfigurationElementCollection.cs : CollectionType is public.
34 Count and BaseAdd() are not virtual.
35 * ConfigurationPropertyCollection.cs : Count is not virtual.
37 2006-02-01 Chris Toshok <toshok@ximian.com>
39 * ConfigurationElement.cs: revert the patch that stores and writes
40 out xmlns attributes for all elements.
42 * ClientConfigurationSystem.cs: SupportsUserConfig == false.
44 * AppSettingsSection.cs (GetRuntimeObject): call col.SetReadOnly()
45 only if SupportsUserConfig != true.
47 * ConfigurationManager.cs (ConfigurationSystem): add a property
48 like ConfigurationFactory, and use it instead of the private field
51 2006-01-26 Chris Toshok <toshok@ximian.com>
53 * SectionGroupInfo.cs (ReadContent): handle "location" (seemingly)
56 * InternalConfigurationRoot.cs: misc logical additions. still
59 * ConfigurationManager.cs (OpenExeConfigurationInternal): throw an
60 exception if both calling_assembly and exePath are null. Allow
61 the exePath to be a path to a config file as well, checking to see
62 if it ends in .config before appending.
63 (OpenExeConfiguration): stop blindly passing
64 Assembly.GetCallingAssembly. I'm assuming this will likely break
65 .dll.config usage. need to investigate that (and write more unit
67 (GetSection): call configSystem.GetSection.
68 (RefreshSection): call configSystem.RefreshSection.
69 (ChangeConfigurationSystem): modeled after the
70 ConfigurationSettings System.Web hack - allow
71 WebConfigurationManager to replace the current
72 IInternalConfigSystem.
74 * InternalConfigurationHost.cs (InternalConfigurationHost): make
75 abstract, and remove all the NotImplenmentedException's.
77 * ConfigurationElement.cs (DeserializeElement): store off the xml
78 namespace if there is one.
79 (SerializeElement): write out the namespace if there was one.
81 * ClientConfigurationSystem.cs: new class, based on some stack
82 traces I've seen in tests. Kinda (well, not *kinda*..) hacky.
84 * Configuration.cs (NamespaceDeclared): implement.
85 (Load): don't swallow all exceptions, just the ones raised when we
86 open the stream for reading.
87 (ReadConfigFile): handle xmlns.
89 2006-01-25 Chris Toshok <toshok@ximian.com>
91 * ConfigInfo.cs (ThrowException): throw a
92 ConfigurationErrorsException, not a ConfigurationException.
94 * SectionGroupInfo.cs (ReadContent): throw an exception
95 unconditionally if we see a <location>. they aren't valid in
98 2006-01-25 Chris Toshok <toshok@ximian.com>
100 * KeyValueInternalCollection.cs: don't use a nested collection,
101 just defer to our base class. This fixes usage of
102 ConfigurationManager.AppSettings.Keys.
104 2006-01-13 Chris Toshok <toshok@ximian.com>
106 * AppSettingsSection.cs (GetRuntimeObject): only access
107 Settings[key] once per iteration.
109 2006-01-09 Chris Toshok <toshok@ximian.com>
111 * ConfigurationManager.cs (AppSettings): just return
112 AppSettingsSection.GetRuntimeObject() here.
114 * AppSettingsSection.cs: fix the "file" property to match dumper
116 (GetRuntimeObject): this returns a KeyValueInternalCollection in
119 2006-01-09 Chris Toshok <toshok@ximian.com>
121 * ElementInformation.cs (Validator): if propertyInfo == null,
122 return a DefaultValidator instance.
124 2006-01-09 Chris Toshok <toshok@ximian.com>
126 * AppSettingsSection.cs (.cctor): specify null for
129 * ProtectedProviderSettings.cs (.cctor): specify null for
132 2006-01-03 Chris Toshok <toshok@ximian.com>
134 * Configuration.cs (SaveAs): open with FileMode.OpenOrCreate so we
135 can save to a new file.
136 (CreateSection): don't bother to set the section information's
137 Name here. we'll do it in SectionInfo.CreateInstance.
139 * ProtectedConfiguration.cs (Section): new static property so we
140 can remove all the GetSection calls.
141 (GetProvider): load a named provider, optionally throwing an
142 exception if it's not found.
144 * InternalConfigurationHost.cs (EncryptSection, DecryptSection):
145 make these private interface implementations, and call
146 protectedSection.{EncryptSection,DecryptSection}.
148 * ProtectedConfigurationSection.cs (EncryptSection,
149 DecryptSection): add these two calls. They really shouldn't be
150 here, but I saw them in an MS stack trace and thought "why not?".
152 * ConfigurationSection.cs (SectionInformation): don't set
153 attributes here, that's done in SectionInfo.CreateInstance.
154 (DeserializeSection): shoehorn in the decryption stuff here. It
155 doesn't belong here, and I've added a MonoTODO about it. It
156 should live someplace like SectionInfo.ReadData (which would make
157 it similar to the encryption stuff in .WriteData).
159 * SectionInformation.cs (IsProtected): remove the special flag,
160 just return true if we have a non-null protection_provider.
161 (ProtectSection): do nothing but try to instantiate the named
163 (UnprotectSection): null out protection_provider.
165 * DpapiProtectedConfigurationProvider.cs: move the
166 NotSupportedExceptions to Decrypt/Encrypt so we don't bomb out
167 when parsing our machine.config file.
169 * RsaProtectedConfigurationProvider.cs: initial implementation.
170 much is missing (OAEP support, key importing, adding/deleting
171 keys), but it can be used.
173 2006-01-02 Chris Toshok <toshok@ximian.com>
175 * RsaProtectedConfigurationProvider.cs: implement the
176 CspProviderName and UseOAEP properties..
178 2006-01-02 Chris Toshok <toshok@ximian.com>
180 * ProtectedConfigurationSection.cs: flesh this out (and add logic
181 to instantiate providers, based on some of the standalone test
182 exception stack traces.)
184 * ProtectedConfiguration.cs: new implementation.
186 * ProtectedConfigurationProviderCollection.cs: new
189 * ProtectedProviderSettings.cs: new implementation.
191 * ProtectedConfigurationProvider.cs: trim the superclass's name.
193 * RsaProtectedConfigurationProvider.cs: stubbed, unimplemented.
195 * DpapiProtectedConfigurationProvider.cs: add stubbed
196 implementation that throws NotSupportedException telling people
197 they should be using RsaProtectedConfigurationProvider.
199 2006-01-02 Chris Toshok <toshok@ximian.com>
201 * DefaultSection.cs (Properties): implement.
203 * IgnoreSection.cs: move from lazily creating the properties
204 collection to sharing a single one across all instances.
206 * ConfigurationLockCollection.cs (IsReadOnly): fix compiler warning.
208 * ConfigurationElementCollection.cs (BaseAdd) remove logic to
209 remove an old matching element.
210 (BaseGetKey): throw an exception if @index is out of range.
212 * SectionInformation.cs (SectionName): just return name, like Name
213 does.. redundant, but it matches tests.
214 (GetRawXml): implement.
215 (SetRawXml): implement.
217 * ConfigurationSection.cs (SectionInformation): fill in
218 sectionInformation.Type before returning.
219 (DeserializeSection): save off the raw xml to our
222 * ConfigurationElement.cs (LockItem): implement.
223 (DeserializeElement): add support for the "lockItem" attribute.
225 2005-12-16 Chris Toshok <toshok@ximian.com>
227 * ConfigurationLockCollection.cs (Add): only add the name if it's
229 (IsReadOnly): always return false for the time being, in the
230 non-exceptional case.
232 2005-12-15 Chris Toshok <toshok@ximian.com>
234 * ConfigurationElement.cs (LockAllAttributesExcept): implement.
235 (LockAllElementsExcept): implement.
236 (DeserializeElement): handle the built-in attributes (lock* for
239 2005-12-15 Chris Toshok <toshok@ximian.com>
241 * ConfigurationLockCollection.cs (..ctor): don't call Populate.
243 (CheckName): make sure the passes in name is valid for this type
245 (Add): call CheckName, and set is_modified to true.
246 (Clear): set is_modified.
247 (IsReadOnly): add plausable implementation, including exception in
248 the case where the name isn't found.
249 (Remove): set is_modified.
250 (SetFromList): implement.
251 (get_AttributeList): implement.
252 (set_IsModified): add internal setter so we can clear the modified
255 2005-12-12 Chris Toshok <toshok@ximian.com>
257 * AppSettingsSection.cs (DeserializeElement): provide rather naive
258 version of the file="" handling. It's enough to make our tests
261 2005-12-11 Chris Toshok <toshok@ximian.com>
263 * ConnectionStringsSection.cs (..cctor): use "" instead of null
264 for the name of the default collection.
266 * AppSettingsSection.cs (..cctor): create a property for the
268 (DeserializeElement): call base.DeserializeElement.
269 (File): index off the property, not the name.
270 (Settings): don't use an private variable here, use
273 * ConfigurationManager.cs (GetSection): GetEntryAssembly returns
274 null for new app domains. so deal with this by calling
275 GetCallingAssembly if it's null. This is probably still wrong but
276 it doesn't NRE in xsp2.
277 (AppSettings): remove MonoTODO.
279 * KeyValueConfigurationElement.cs (..ctor): new method, create the
280 ConfigurationProperty's and the collection here.
281 (.ctor): add internal arg-less ctor.
282 (Key): use keyProp instead of "key".
283 (Value): use vlaueProp instead of "value".
284 (Properties): return our class's properties.
286 * KeyValueConfigurationCollection.cs (CreateNewElement): use the
288 (GetElementKey): re-enable the BaseIndexOf test.
290 2005-12-02 Chris Toshok <toshok@ximian.com>
292 * Configuration.cs (Save): call WriteStartDocument.
294 * ConnectionStringSettingsCollection.cs (CreateNewElement): use
295 parameter-less ctor to keep from generating exceptions when using
298 2005-12-02 Chris Toshok <toshok@ximian.com>
300 * ConnectionStringSettings.cs: tabify, fix default values, and add
301 a string validator for "name".
303 2005-12-02 Chris Toshok <toshok@ximian.com>
305 * CommaDelimitedStringCollectionConverter.cs (ConvertTo): change
306 the type check away from an exact check for
307 CommaDelimitedStringCollection to an assignable test from
308 StringCollection. This is due to the fact that AuthorizationRule
309 doesn't create CommaDelimitedStringCollections, for some odd
310 reason. It uses StringCollections.
312 * PropertyInformation.cs (Value): remove the case for
313 IsDefaultCollection - it's not necessary, as the property is an
316 * ConnectionStringSettings.cs: fix formatting and remove some
319 * ConnectionStringSettingsCollection.cs: same.
321 * ConnectionStringsSection.cs: same.
323 * ConfigurationElement.cs (SerializeToXmlElement): don't write the
324 enclosing start/end elements if the elementName is null or "".
325 this fixes the case for the DefaultCollections (at least in the
326 case of connectionStrings).
328 * IgnoreSection.cs (Properties): remove the MonoTODO.
330 * SectionInfo.cs (WriteData): remove the "<!-- dd -->" output.
332 2005-11-28 Chris Toshok <toshok@ximian.com>
334 * ProviderSettings.cs: use ConfigurationProperty's to implement
337 2005-11-24 Chris Toshok <toshok@ximian.com>
339 * ConfigurationProperty.cs (Validate): add internal method.
341 2005-11-24 Chris Toshok <toshok@ximian.com>
343 * ConfigurationElement.cs (ElementProperty): make this protected
344 internal virtual instead of public.
345 (SetPropertyValue): add a validator call and a blurb about the
346 code based on information gleaned from tests.
347 (set_Item (string)): call SetPropertyValue in the setter.
349 2005-11-14 Chris Toshok <toshok@ximian.com>
351 * CommaDelimitedStringCollection.cs: reformat things a bit, and
352 flag ToString() as override.
354 * DefaultSection.cs: new stubbed out implementation.
356 * CommaDelimitedStringCollectionConverter.cs: new implementation.
358 2005-11-10 Chris Toshok <toshok@ximian.com>
360 * AppSettingsSection.cs (DeserializeElement): stop explicitly
361 calling Settings.DeserializeElement, as the DefaultCollection
364 * ConfigurationElement.cs (DeserializeElement): rework the loop
365 here so that we actually loop over all the content elements.
367 2005-11-09 Chris Toshok <toshok@ximian.com>
369 * ConfigurationElement.cs: Add support for DefaultCollection
372 * PropertyInformation.cs (PropertyInformation.Value): add case for
375 * SectionGroupInfo.cs (SectionGroupInfo.ReadConfig): when we read
376 a "type" attribute, make sure the cached System.Type is cleared.
378 2005-10-25 Chris Toshok <toshok@ximian.com>
380 * InfiniteTimeSpanConverter.cs: new implementation.
382 * InfiniteIntConverter.cs: new implementation.
384 * GenericEnumConverter.cs: new implementation.
386 * Configuration.cs: we don't need to check with "is" after we use
387 "as".. just check for null-ness.
389 * KeyValueConfigurationCollection.cs: GetElementKey should throw
390 NRE if element == null.
392 * CommaDelimitedStringCollection.cs: raise the correct exceptions
393 in the read only case, and return null from ToString if there are
396 2005-10-25 Chris Toshok <toshok@ximian.com>
398 * PositiveTimeSpanValidatorAttribute.cs: new implementation.
400 * PositiveTimeSpanValidator.cs: new implementation.
402 2005-10-24 Chris Toshok <toshok@ximian.com>
404 * TimeSpanSecondsOrInfiniteConverter.cs: new implementation.
406 * TypeNameConverter.cs: new implementation.
408 * WhiteSpaceTrimStringConverter.cs: new implementation.
410 2005-10-24 Chris Toshok <toshok@ximian.com>
412 * AppSettingsSection.cs (DeserializeElement, SerializeSection):
413 split the behavior based on if File == "". If it is, we do the
414 default. otherwise we throw NIE.
416 * ConnectionStringsSection.cs (DeserializeElement): we shouldn't
417 need this, but we do until the IsDefaultCollection stuff is fixed.
419 * ConfigurationElementCollection.cs
420 (OnDeserializeUnrecognizedElement): for clearElementName, make
421 sure we have no attributes.
423 * ConnectionStringSettingsCollection.cs (get_Properties): for now
424 just chain up to base.Properties.
426 * ConfigurationElement.cs (ReflectProperties): do the default
427 value/property type check in a more robust way, using
430 2005-10-24 Chris Toshok <toshok@ximian.com>
432 * ConfigurationElement.cs: treat
433 ConfigurationProperty.NoDefaultValue the same as null when we're
434 checking the default value's type. this fixes t13 and 14.
436 * ConnectionStringsSection.cs (ConnectionStrings): fix the
437 DefaultValue in the ConfigurationPropertyAttribute.
439 2005-10-24 Chris Toshok <toshok@ximian.com>
441 * KeyValueConfigurationCollection.cs (GetElementKey): sacrifice
442 one test to get another working. Return a valid key even if the
443 element is not in this collection.
444 (get_ThrowOnDuplicate): return false.
446 * ConfigurationElementCollection.cs (BaseAdd): if we're adding an
447 element with the same key, overwrite the old one (remove the old
448 one after inserting the new one). Also, re-enable the throwing of
449 exceptions if ThrowOnDuplicate == true.
451 2005-10-24 Chris Toshok <toshok@ximian.com>
453 * AppSettingsSection.cs (Settings): fix ConfigurationProperty
456 * ProtectedConfigurationSection.cs (Providers): same.
458 2005-10-12 Chris Toshok <toshok@ximian.com>
460 * ConfigurationPermission.cs: flesh out as per tests.
462 2005-10-11 Chris Toshok <toshok@ximian.com>
464 * ConfigurationProperty.cs: don't use null to mean no default
465 value, use NoDefaultValue.
467 2005-10-11 Chris Toshok <toshok@ximian.com>
469 * KeyValueConfigurationCollection.cs (GetElementKey): duh.
470 BaseGet calls GetElementKey, so we were hitting an infinite
471 recursion here. Use BaseIndexOf instead.
473 2005-10-07 Chris Toshok <toshok@ximian.com>
475 * InternalConfigurationHost.cs: some interface work, adding in the
478 * ConfigurationProperty.cs: remove debug spew.
480 * Configuration.cs: add NIE'd NamespaceDeclared property.
482 * ElementInformation.cs: add NIE'd Errors property.
484 * PropertyInformationCollection.cs: add NIE'd GetObjectData().
486 * ConfigurationManager.cs: quite a bit of new work here. Some
487 definie TODO's still though.
489 2005-10-07 Chris Toshok <toshok@ximian.com>
491 * ConfigurationErrorsException.cs (.ctor): for the (string)
492 overload, chain up to the base (string) ctor.
494 2005-10-07 Chris Toshok <toshok@ximian.com>
496 * ConfigurationElement.cs (ElementMap.ReflectProperties): make
497 sure the type of the default value is compatible with that of the
498 property itself, and throw ConfigurationErrorsException if they
499 don't match. Fixes t12.
501 2005-10-07 Chris Toshok <toshok@ximian.com>
503 * ConfigHelper.cs: remove some unused code.
505 * ConfigurationProperty.cs: disambiguate the ctor we chain to.
507 * ConfigurationElement.cs (ElementProperty): implement.
508 (ElementMap.ReflectProperties): make DefaultValidator the default
511 2005-10-06 Chris Toshok <toshok@ximian.com>
513 * KeyValueConfigurationElement.cs: uncomment out some stuff.
514 (Properties): just return base.Properties. Not sure why they
515 override this, as the base class's implementation passes our test.
517 * KeyValueConfigurationCollection.cs (Add): for the keyValue
518 overload, call keyValue.Init as the unit test stack traces
519 indicates that'9s where it's called. For the string,string
520 overload, just call the keyValue overload instead of calling
522 (CreateNewElement): just use the name/value ctor, and specify ""
524 (GetElementKey): this function always returns "" for elements that
525 haven't been added to the collection. Once theyre added, it seems
526 to always return keyValue.Key.
527 (Properties): the unit tests show this returns a 0 length
530 2005-10-05 Chris Toshok <toshok@ximian.com>
532 * ConfigurationPermissionAttribute.cs: stub out.
534 2005-10-05 Chris Toshok <toshok@ximian.com>
536 * TimeSpanMinutesOrInfiniteConverter.cs: fill in the
539 2005-10-05 Chris Toshok <toshok@ximian.com>
541 * TimeSpanSecondsConverter.cs: new implementation.
543 2005-10-05 Chris Toshok <toshok@ximian.com>
545 * TimeSpanMinutesConverter.cs: flesh out implementation.
547 * ConfigurationConverterBase.cs: make all subclasses work with
548 strings only, since that's what seems to manifest itself in the
551 2005-10-05 Chris Toshok <toshok@ximian.com>
553 * ConfigurationLockCollection.cs: add NIE'd AttributeList
556 * ConfigurationConverterBase.cs: add MonoTODO'd CanConvertFrom and
557 CanConvertTo methods.
559 * ConfigurationSectionGroup.cs: add NIE'd IsDeclared property.
561 * ProtectedConfigurationSection.cs: add NIE'd properties.
563 * ConfigurationElementCollection.cs: add MonoTODO'd IsReadOnly
564 and SetReadOnly methods, and have then chain up to the base class.
566 * KeyValueConfigurationCollection.cs: add the class level
567 ConfigurationCollectionAttribute, and add a NIE'ed Properties
570 * ProviderSettingsCollection.cs: add the class level
571 ConfigurationCollectionAttribute, and add a "new" keyword to the
572 this property. Also, nuke the Provider's property.
574 * SectionInformation.cs: add some NEI'd properties.
576 * ConfigurationSection.cs (ResetModified): leave the MonoTODO, but
577 chain up to base class's method instead of throwing NIE.
579 * ConnectionStringSettingsCollection.cs: add the class-level
580 ConfigurationCollectionAttribute, and add the unimplemented
583 * ConfigurationErrorsException.cs: flesh this out, and add a
584 pragma to disable the obsolete warnings from our base class.
586 * ProviderSettings.cs: add unimplemented Properties property.
588 * ConfigurationElement.cs: remove unnecessary
589 EvaluationInformation.
591 * InternalConfigurationRoot.cs: add unimplemented IsDesignTime
594 * ConfigurationProperty.cs: add a missing ctor.
596 * AppSettingsSection.cs: add missing "override" keyword.
598 * ConnectionStringsSection.cs: remove override.
600 * ConfigurationSectionCollection.cs: AllKeys -> Keys, and add
601 unimplemented GetObjectData override.
603 * ConfigurationSectionGroupCollection.cs: same.
605 * ConfigurationCollectionAttribute.cs: add missing CollectionType
608 2005-10-05 Chris Toshok <toshok@ximian.com>
610 * ConfigurationPermission.cs: new implementation.
612 * IgnoreSection.cs: new implementation.
614 2005-10-05 Chris Toshok <toshok@ximian.com>
616 * CommaDelimitedStringCollection.cs: new implementation.
618 2005-10-05 Chris Toshok <toshok@ximian.com>
620 * NameValueConfigurationCollection.cs: new implementation.
622 * NameValueConfigurationElement.cs: new implementation.
624 2005-10-05 Chris Toshok <toshok@ximian.com>
626 * ValidatorCallback.cs: new implementation.
628 * SubclassTypeValidator.cs, SubclassTypeValidatorAttribute.cs: new
631 * CallbackValidator.cs, CallbackValidatorAttribute.cs: new
634 * RegexStringValidator.cs, RegexStringValidatorAttribute.cs: new
637 * LongValidator.cs, LongValidatorAttribute.cs: new implementation.
639 * IntegerValidator.cs, IntegerValidatorAttribute.cs: new
642 * DefaultValidator.cs: new implementation.
644 2005-09-28 Chris Toshok <toshok@ximian.com>
646 * ConfigurationElementCollection.cs: more work on the "<clear />"
647 handling - just skip the element for now. this causes a failure
648 in one test ('<clear hi="bye" />' doesn't throw an exception when
649 it should), but it succeeds for collections that have required
652 * ConnectionStringSettings.cs: providerName isn't a required
655 * AppSettingsSection.cs (.cctor): initialize our "file" Property.
658 (GetRuntimeObject): call the base class method instead of just
661 * ConnectionStringsSection.cs: Add a hacky DeserializeElement
662 method here (that isn't in MS's) for the time being so we actually
663 deserialize our collection.
665 2005-09-28 Chris Toshok <toshok@ximian.com>
667 * KeyValueInternalCollection.cs: found this by way of a stack
668 trace in one of the tests. A NameValueCollection that wraps a
669 KeyValueConfigurationCollection.
671 * Configuration.cs (Init): save off configPath.
672 (EvaluationContext): new, mostly implemented.
673 (GetSectionInstance): use IgnoreSection instead of
675 (Load): don't fail when we can't load a file.
677 * IgnoreSection.cs: replace RuntimeOnlySection with this new
680 * RuntimeOnlySection.cs: nuke.
682 2005-09-27 Chris Toshok <toshok@ximian.com>
684 * TimeSpanMinutesOrInfiniteConverter.cs: this is sealed.
686 2005-09-27 Chris Toshok <toshok@ximian.com>
688 * ConfigurationProperty.cs: add IsDefaultCollection property.
690 2005-09-27 Chris Toshok <toshok@ximian.com>
692 * ConfigurationElementProperty.cs: new file.
694 * ConfigurationLockCollection.cs: new file.
696 * ConfigurationElementCollection.cs
697 (OnDeserializeUnrecognizedElement): make sure we consume the
698 <clear /> element so we don't into an endless loop.
700 * ConfigurationElement.cs: add a bunch of NIE's properties.
702 * ContextInformation.cs: Add NIE'ed IsMachineLevel property.
704 2005-09-23 Chris Toshok <toshok@ximian.com>
706 * AppSettingsSection.cs: fix build and add a couple of TODO'ed
709 2005-09-23 Chris Toshok <toshok@ximian.com>
711 * ProviderSettings.cs (Unmerge): track change to
712 ConfigurationElement.Unmerge.
714 * ConfigurationSection.cs: add functions nuked from
715 ConfigurationElement here.
717 * ConfigurationElementCollection.cs: add DebuggerDisplay attribute
719 (BaseGetAllKeys): returns object[], not string[].
720 (BaseGetKey): returns object, not string.
721 (Unmerge): track change to ConfigurationElement.Unmerge signature.
723 * ConfigurationElement.cs (ConfigurationElement.Unmerge): fix
724 signature (drop the serializeCollectionKey parameter).
727 2005-09-23 Chris Toshok <toshok@ximian.com>
729 * StringValidator.cs: throw ArgumentException instead of
730 ConfigurationErrorsException.
732 2005-09-23 Chris Toshok <toshok@ximian.com>
734 * ConnectionStringsSection.cs: track change to
735 ConfigurationPropertyOptions.
737 * ConfigurationPropertyAttribute.cs, ConfigurationProperty.cs,
738 ProviderSettings.cs: track change to ConfigurationPropertyOptions.
740 * ConnectionStringSettings.cs: track change to
741 ConfigurationProprertyOptions, and add some ConfigurationProperty
744 * ConfigurationPropertyOptions.cs: DefaultCollection ->
745 IsDefaultCollection, Required -> IsRequired.
747 2005-09-22 Chris Toshok <toshok@ximian.com>
749 * PositiveTimeSpanValidator.cs: this lives in
750 System.Web.Configuration, not System.Configuration.
752 2005-09-22 Chris Toshok <toshok@ximian.com>
754 * TimeSpanValidator.cs: change to ArgumentException and alter the
757 2005-09-22 Chris Toshok <toshok@ximian.com>
759 * ExeConfigurationFileMap.cs (ctor): init all the strings to "".
761 2005-07-01 Lluis Sanchez Gual <lluis@novell.com>
763 * ProviderSettings.cs: Implemented properties using property attributes.
764 * ConfigurationElement.cs: Implemented ElementInformation property and
765 moved there all value management.
766 * ProtectedConfigurationProvider.cs: Set the correct base class.
767 * SectionInformation.cs: Added missing AllowExeDefinition property.
768 * TimeSpanValidatorAttribute.cs: Implemented.
769 * StringValidator.cs: Implemented.
770 * ProviderSettingsCollection.cs: Added missing class attribute.
771 * ConfigurationSaveMode.cs: Fix enum values.
772 * ConfigurationElementCollection.cs: Added Init method for initializing
773 elements from properties.
774 * StringValidatorAttribute.cs: Implemented.
775 * ConfigurationLocation.cs: Added support for allowOverride flag.
776 * TimeSpanMinutesOrInfiniteConverter.cs: Created skeleton class.
777 * PositiveTimeSpanValidator.cs: Implemented.
778 * TimeSpanMinutesConverter.cs: Created skeleton class.
779 * SectionInfo.cs: Properly read, store and check the values of AllowLocation,
780 AllowDefinition and AllowExeDefinition.
781 * TimeSpanValidator.cs: Implemented.
782 * ConfigurationConverterBase.cs: Created skeleton class.
783 * InternalConfigurationHost.cs: Implemented IsDefinitionAllowed and
784 VerifyDefinitionAllowed.
785 * ConfigurationManager.cs: That class must be static.
786 * PropertyInformationCollection.cs: Implemented.
787 * Configuration.cs: Added some checks for AllowLocation, AllowDefinition and
788 so on. In Save(), don't forget to save location elements.
789 * ConfigurationProperty.cs: Keep track of collection attributes.
790 * ConfigInfo.cs: Support overrideAllowed flag.
791 * KeyValueConfigurationElement.cs: Define properties using attributes.
792 * PropertyValueOrigin.cs: implemented.
793 * PropertyInformation.cs: Mostly implemented.
794 * SectionGroupInfo.cs: Properly propagate the overrideAllowed flag.
795 * ElementInformation.cs: Mostly implemented.
796 * ConfigurationPropertyAttribute.cs: Set the correct default value.
797 * ConfigurationCollectionAttribute.cs: Implemented.
799 2005-06-23 Lluis Sanchez Gual <lluis@novell.com>
801 * SectionInfo.cs: Set the config host when loading the section.
802 * InternalConfigurationHost.cs: Implemented some basic methods.
803 * Configuration.cs: Find the correct parent for the configuration,
804 taking into accound locations and such. Use Host functions to get
806 * ConfigurationLocationCollection.cs: Added find method.
807 * ConfigInfo.cs: Added Host property.
808 * InternalConfigurationFactory.cs: The InitForConfiguration calls
809 are now done in each correspoding configuration.
810 * SectionGroupInfo.cs: When reading a location element, create
811 a Configuration object for each path specified in the location.
812 * ConfigurationElementCollection.cs: Added the CreateNewElementInternal
813 method, which properly initializes the created element.
814 * ConfigurationLocation.cs: OpenConfiguration now has to read the
815 xml contents. It also has to find the correct parent configuration,
816 if it has not been specified.
818 2005-06-17 Lluis Sanchez Gual <lluis@novell.com>
820 * SectionInfo.cs, ConfigInfo.cs, SectionGroupInfo.cs: Minor api fixes.
821 * ConfigurationPropertyCollection.cs: Added Clear method.
822 * ContextInformation.cs: Implemented.
823 * ConfigurationManager.cs: Implemented some missing methods.
824 Configuration objects are now created through the ConfigurationFactory.
825 * InternalConfigurationHost.cs: Implementation of IInternalConfigHost
826 to be used for exe files and machine.config.
827 * ConfigurationFileMap.cs: Implemented.
828 * Configuration.cs: Read and write config files using the methods that
829 IInternalConfigHost provides.
830 * InternalConfigurationRoot.cs: IInternalConfigRoot stub.
831 * ExeContext.cs: Implemented.
832 * AppSettingsSection.cs: Use the KeyValueConfigurationCollection
833 collection to store values.
834 * KeyValueConfigurationElement.cs: Implemented.
835 * KeyValueConfigurationCollection.cs: Implemented.
836 * InternalConfigurationFactory.cs: An implementation of
837 IInternalConfigConfigurationFactory.
838 * ConfigurationPropertyAttribute.cs: Added missing attributes.
839 * ExeConfigurationFileMap.cs: Implemented.
841 2005-06-15 Lluis Sanchez Gual <lluis@novell.com>
843 * ConfigurationElement.cs, ConfigurationErrorsException.cs
844 SectionInfo.cs, ConnectionStringSettingsCollection.cs,
845 ConfigurationPropertyCollection.cs, ProtectedConfigurationProvider.cs,
846 ConfigurationSection.cs, NonEmptyStringConfigurationProperty.cs,
847 ConfigurationElementCollectionType.cs, Configuration.cs,
848 ConnectionStringSettings.cs, ConfigurationProperty.cs,
849 ConfigurationLocationCollection.cs, TimeSpanConfigurationProperty.cs,
850 ConfigurationAllowDefinition.cs, ConfigInfo.cs,
851 ConfigurationSectionGroupCollection.cs, AppSettingsSection.cs,
852 ProviderSettingsCollection.cs, IntegerConfigurationProperty.cs,
853 SectionGroupInfo.cs, ConfigurationUserLevel.cs,
854 ConnectionStringsSection.cs, ConfigurationPropertyAttribute.cs,
855 ConfigurationLocation.cs, ConfigurationSectionCollection.cs,
856 ConfigurationSectionGroup.cs, RuntimeOnlySection.cs,
860 * ConfigurationElementCollection.cs: Implemented support for Basic
861 collection type. Other fixes.
863 * ConfigurationPropertyFlags.cs: Renamed to ConfigurationPropertyOptions.
864 * ConfigurationUpdateMode.cs: Renamed to ConfigurationSaveMode.
866 * SectionInformation.cs, ConfigurationAllowExeDefinition.cs
867 ConfigurationManager.cs, ConfigurationSaveMode.cs,
868 ConfigurationValidatorAttribute.cs, ProtectedConfigurationSection.cs,
869 ConfigurationValidatorBase.cs, ConfigurationPropertyOptions.cs:
872 * ConfigurationValidationAttribute.cs: Removed.
874 * ProviderBase.cs: Moved to System.dll.
876 2005-06-14 Lluis Sanchez Gual <lluis@novell.com>
878 * AppSettingsSection.cs, ConfigInfo.cs, Configuration.cs
879 ConfigurationAllowDefinition.cs, ConfigurationElement.cs
880 ConfigurationElementCollection.cs, ConfigurationElementCollectionType.cs
881 ConfigurationLocation.cs, ConfigurationLocationCollection.cs
882 ConfigurationProperty.cs, ConfigurationPropertyAttribute.cs
883 ConfigurationPropertyCollection.cs, ConfigurationPropertyFlags.cs
884 ConfigurationSection.cs, ConfigurationSectionCollection.cs
885 ConfigurationSectionGroup.cs, ConfigurationSectionGroupCollection.cs
886 ConfigurationUpdateMode.cs, ConfigurationUserLevel.cs
887 ConfigurationValidationAttribute.cs, ConnectionStringsSection.cs
888 ConnectionStringSettingsCollection.cs, ConnectionStringSettings.cs
889 IntegerConfigurationProperty.cs, NonEmptyStringConfigurationProperty.cs
890 NonEmptyStringFlags.cs, PathLevel.cs, ProtectedConfigurationProvider.cs
891 ProviderBase.cs, ProviderSettings.cs, ProviderSettingsCollection.cs
892 RuntimeOnlySection.cs, SectionInfo.cs, SectionGroupInfo.cs
893 TimeSpanConfigurationProperty.cs, TimeSpanPropertyFlags.cs
894 TimeSpanSerializedFormat.cs:
896 Moved from the System assembly.