1 2008-02-07 Konstantin Triger <kostat@mainsoft.com>
3 * ClientConfigurationSystem.cs: performance: refactor out the Configuration
4 object construction from GetSection() to the ctor.
6 2008-01-16 Zoltan Varga <vargaz@gmail.com>
8 * ConfigurationElement.cs: Allow non-public constructors. Fixes #353554.
10 * PropertyInformation.cs: Allow non-public constructors. Fixes #353557.
12 * ConfigurationElement.cs: Consider non-public properties as well. Fixes
15 2008-01-12 Sebastien Pouliot <sebastien@ximian.com>
17 * ConfigurationLocationCollection.cs: Avoid infinite recursion.
20 2007-12-25 Konstantin Triger <kostat@mainsoft.com>
22 * KeyValueInternalCollection.cs: properly override NameValueCollection
23 to support interop with it.
25 2007-12-25 Konstantin Triger <kostat@mainsoft.com>
27 * ConfigurationElement.cs:
28 1. typo - pass the correct property to Attribute.GetCustomAttribute.
29 2. Pass oroginal exception as inner.
31 2007-12-05 Marek Habersack <mhabersack@novell.com>
33 * ConfigurationElement.cs: some property values may be null
34 objects in GetHashCode.
36 2007-11-23 Marek Habersack <mhabersack@novell.com>
38 * ConfigurationElementCollection.cs: ThrowOnDuplicate returns true
39 if the collection is one of the AddRemoveClearMap or
40 AddRemoveClearMapAlternate types.
42 2007-11-15 Atsushi Enomoto <atsushi@ximian.com>
44 Part of fix for bug #323708.
45 * ConfigurationSection.cs : in GetRuntimeObject(), take parent
46 section instance into consideration.
47 * SectionInformation.cs : to make it possible, GetParentSection()
48 should be implemented.
49 * Configuration.cs : to make it possible, GetSectionInstance()
50 should set parent section on its SectionInformation. It used to
51 just steal parent's xml when its own xml does not exist, but
52 it now blocks correct configuration retrieval.
54 2007-11-15 Atsushi Enomoto <atsushi@ximian.com>
56 * SectionGroupInfo.cs : remove extra StringBuilder creation.
58 2007-11-14 Atsushi Enomoto <atsushi@ximian.com>
60 * Configuration.cs : (Save) when the given file path is relative
61 it failed to create directory. Fixed standalone test t25/t26.
62 * InternalConfigurationHost.cs : pass userLevel to create a host
65 2007-10-04 Atsushi Enomoto <atsushi@ximian.com>
67 * InternalConfigurationHost.cs : when the streamName is for
68 machine.config, try get_bundled_machine_config() icall first.
69 This hopefully implements the requested feature in bug #325022.
70 * Configuration.cs : added comment.
72 2007-08-31 Gert Driesen <drieseng@users.sourceforge.net>
74 * ConfigurationManager.cs: Fixed line endings. Avoid warning by
75 changing accessibility of ChangeConfigurationSystem to internal.
76 * Configuration.cs: Fixed compiler warnings.
77 * DpapiProtectedConfigurationProvider.cs: Fixed line endings.
79 2007-08-21 Atsushi Enomoto <atsushi@ximian.com>
81 * ConfigurationManager.cs : To open exe configuration, use
82 GetEntryAssembly() first, and GetCallingAssembly() only when
83 it was not found. Should fix bug #82071.
85 2007-06-21 Atsushi Enomoto <atsushi@ximian.com>
87 * Configuration.cs, InternalConfigurationHost.cs :
88 configuration file to write might be given as an absolute path,
89 where the ancestor directories may not exist.
91 2007-06-20 Atsushi Enomoto <atsushi@ximian.com>
93 * ConfigurationManager.cs : in OpenExeConfiguration() and
94 OpenMappedExeConfiguration(), take userLevel into consideration.
95 * InternalConfigurationHost.cs : consider ConfigurationUserLevel and
96 use correct config map file in InitForConfiguration().
98 2007-06-18 Atsushi Enomoto <atsushi@ximian.com>
100 * ClientConfigurationSystem.cs : do not asume GetEntryAssembly()
101 returns non-null. Patch by Patrick Perry.
103 2007-06-13 Atsushi Enomoto <atsushi@ximian.com>
105 * ConfigurationElement.cs : SerializeToXmlElement() should be
106 called regardless of HasValues() return value, especially since
107 it could be overriden (e.g. in SettingsValueElement).
109 2007-06-13 Atsushi Enomoto <atsushi@ximian.com>
111 * ConfigurationSectionGroup.cs
112 Configuration.cs : ConfigurationSectionGroup must be initialized
113 at least when being added to a collection.
115 2007-06-12 Vladimir Krasnov <vladimirk@mainsoft.com>
117 * ConfigurationElement.cs: refactored GetKeyProperties and
118 GetDefaultCollection methods, map should not be used here, Properties
119 will do instead. Refactored ElementMap class
120 * ConfigurationElementCollection.cs: fixed InitFromProperty, GetMap()
121 should not be called here
122 * ElementInformation.cs: fixed Properties, moved to ctor to be thread
124 * PropertyInformation.cs: members assigned readonly modifier
126 2007-05-30 Marek Habersack <mhabersack@novell.com>
128 * SectionGroupInfo.cs: <location> elements are case-insensitive
129 and the same 'path' attribute may be used only once.
131 * ConfigurationLocationCollection.cs: Find should be
132 case-insensitive for all targets, not just TARGET_JVM.
134 2007-05-17 Igor Zelmanovich <igorz@mainsoft.com>
136 * Configuration.cs: FilePath implemented according to MSDN:
137 If the value for this FilePath property represents a merged view and
138 no actual file exists for the application, the path to the parent
139 configuration file is returned.
141 2007-05-15 Igor Zelmanovich <igorz@mainsoft.com>
144 * ConfigurationLocation.cs:
145 implemented EvaluationContext property.
147 2007-05-15 Igor Zelmanovich <igorz@mainsoft.com>
149 * ConfigurationLocationCollection.cs: for TARGET_JVM only:
150 location path is case-insensitive.
152 2007-05-15 Marek Habersack <mhabersack@novell.com>
154 * ConfigurationElement.cs: added value validation on
155 deserialization from the config file.
157 2007-05-14 Igor Zelmanovich <igorz@mainsoft.com>
159 * ConfigurationElement.cs: when attribute value cannot be parsed,
160 ConfigurationErrorException is thrown.
162 2007-05-09 Igor Zelmanovich <igorz@mainsoft.com>
164 * ConfigurationManager.cs:
165 added MonoLimitation attribute for TARGATE_JVM.
167 2007-05-08 Igor Zelmanovich <igorz@mainsoft.com>
169 * ConnectionStringSettingsCollection.cs: removed 'new' keyword, cause
170 property doesn't hide any inherit property.
172 2007-04-24 Atsushi Enomoto <atsushi@ximian.com>
174 * InternalConfigurationHost.cs : machine configuration covers all
175 ConfigurationAllowDefinition values.
177 2007-04-17 Atsushi Enomoto <atsushi@ximian.com>
179 * ConfigurationSectionCollection.cs : GetEnumerator() should return
180 IEnumerator for the items, not keys.
181 * ConfigurationProperty.cs : more helpful type mismatch message.
183 2007-04-16 Marek Habersack <mhabersack@novell.com>
185 * SectionGroupInfo.cs: another (and final, hopefully) fix for bug
186 #81321 and several other related issues that were discovered by
187 the way. Thanks to Atsushi for help with XmlReader!
189 2007-04-15 Marek Habersack <mhabersack@novell.com>
191 * SectionGroupInfo.cs: another incarnation of the fix for bug
194 2007-04-12 Marek Habersack <mhabersack@novell.com>
196 * SectionGroupInfo.cs: a better fix for #81321
198 2007-04-10 Marek Habersack <mhabersack@novell.com>
200 * SectionGroupInfo.cs: make sure empty sections with the
201 short-circuit tag ends (<section/>) don't make the process loop
202 endlessly. Fixes bug #81321.
204 2007-03-22 Konstantin Triger <kostat@mainsoft.com>
206 * ConfigInfo.cs: should be able instantiate types with private ctors.
208 2007-03-19 Vladimir Krasnov <vladimirk@mainsoft.com>
210 * ConfigurationSectionCollection.cs,
211 * ConfigurationSectionGroupCollection.cs,
212 * PropertyInformationCollection.cs,
213 * SectionGroupInfo.cs: used StringComparer.Ordinal instead of
216 2007-03-15 Vladimir Krasnov <vladimirk@mainsoft.com>
218 * ConfigurationSectionCollection.cs,
219 * ConfigurationSectionGroupCollection.cs,
220 * PropertyInformationCollection.cs,
221 * SectionGroupInfo.cs: these collections should be based on case
222 insensitive NameObjectCollectionBase
223 * added OrdinalComparer.cs for use in NameObjectCollectionBase
225 2007-02-07 Atsushi Enomoto <atsushi@ximian.com>
227 * SectionInfo.cs : don't stop at restartOnExternalChanges attribute.
229 2007-01-16 Konstantin Triger <kostat@mainsoft.com>
231 * ConfigurationElement.cs: ignore properties with null or empty name.
233 2007-01-16 Konstantin Triger <kostat@mainsoft.com>
235 * ConfigurationElement.cs: Try to deserilalize an unrecognized element by
236 current element, and only if failed delegate to default collection.
238 2006-12-27 Vladimir Krasnov <vladimirk@mainsoft.com>
240 * ConfigurationElementCollection.cs: fixed BaseAdd, looking for
241 identical element when collection type is not alternate
243 2006-12-27 Vladimir Krasnov <vladimirk@mainsoft.com>
245 * ConnectionStringSettingsCollection.cs: made connection string key
248 2006-12-27 Atsushi Enomoto <atsushi@ximian.com>
250 * ConfigurationElementCollection.cs : fixed BaseAdd() with
251 throwIfExists to not raise an error for identical element
252 but for different element which shares the same key. Fix by
255 2006-12-21 Vladimir Krasnov <vladimirk@mainsoft.com>
257 * ConfigurationProperty.cs: fixed DefaultValue of type Enum
259 2006-12-10 Konstantin Triger <kostat@mainsoft.com>
261 * ConfigurationElement.cs: Delegate parameter checking and default
262 assigning to Configuratin property.
263 * ConfigurationProperty.cs:
264 Ensure the TypeConvert and Validator always exist.
265 Ensure the primitive types are properly initialized.
267 2006-12-09 Vladimir Krasnov <vladimirk@mainsoft.com>
269 * ConfigurationElementCollection.cs
270 * ConfigurationRemoveElement.cs: fixed key for <remove> element in
271 ConfigurationRemoveElement class
273 2006-11-28 Marek Habersack <grendello@gmail.com>
275 * SectionGroupInfo.cs: Implement merging of section groups with
276 the same names and parents.
278 * ConfigInfo.cs: Add an abstract method for merging sections.
280 * SectionInfo.cs: Add implementation of an abstract base method
282 2006-08-23 Konstantin Triger <kostat@mainsoft.com>
284 * SectionInfo.cs: refactoring - remove unneeded bool? usage.
286 2006-11-05 Vladimir Krasnov <vladimirk@mainsoft.com>
288 * added: ConfigurationRemoveElement.cs, common element for <remove>
289 * ConnectionStringSettingsCollection.cs: reverted last fix for
291 * ConfigurationElementCollection.cs: fixed the way that
292 OnDeserializeUnrecognizedElement method handles <remove> element
294 2006-11-02 Vladimir Krasnov <vladimirk@mainsoft.com>
296 * ConfigurationElement.cs: typo in DefaultCollectionProperty
299 2006-10-30 Joel Reed <joel.reed@ddiworld.com>
301 * NameValueConfigurationCollection.cs: Implement the Properties
304 2006-08-23 Konstantin Triger <kostat@mainsoft.com>
306 * ConfigurationLocation.cs: do not read root element, correctly close stream.
307 * Configuration.cs: use ReadData for nested content to throw if location
308 elements are encounterd.
309 In constructor taking parent Configurqation: do not call Init and so avoid
310 rereading config file.
312 2006-09-05 Vladimir Krasnov <vladimirk@mainsoft.com>
314 * NameValueConfigurationElement.cs: fixed functionality
315 * ConfigurationElementCollection.cs,
316 ConnectionStringSettingsCollection.cs: fixed <remove> element in
317 connectionStrings section
319 2006-08-23 Konstantin Triger <kostat@mainsoft.com>
321 * ConfigurationSection.cs: for net 1.1 SectionHandlers: return null in case
322 RawXml is null, as net 1.1 does.
324 2006-08-17 Vladimir Krasnov <vladimirk@mainsoft.com>
326 * ConfigurationFileMap.cs: added TARGET_JVM on not supported members
329 2006-07-07 Atsushi Enomoto <atsushi@ximian.com>
331 * ConfigurationManager.cs : OpenExeConfiguration(null) should still
332 work. This is required for embedded scenario.
334 2006-06-10 Atsushi Enomoto <atsushi@ximian.com>
336 * SectionGroupInfo.cs : skip <dllmap> in configuration.
338 2006-05-14 Atsushi Enomoto <atsushi@ximian.com>
340 * ConfigurationManager.cs: since ConfigurationSystem is different
341 for web.config, cast from ConfigurationSection to runtime object
342 should be done at GetSection().
343 This really fixed bug #78372.
345 2006-05-12 Atsushi Enomoto <atsushi@ximian.com>
347 * Configuration.cs : configPath is null for machine.config, so don't
348 use it. Use streamName instead. To my understanding, this should
351 2006-05-10 Atsushi Enomoto <atsushi@ximian.com>
353 * ConnectionStringSettings.cs : it seems that "name" property
354 could be null i.e. there is no StringValidator.
355 * StringValidator.cs : allow null.
357 2006-05-10 Atsushi Enomoto <atsushi@ximian.com>
359 * ConfigurationManager.cs : use GetCallingAssembly() instead of
360 GetEntryAssembly() which possibly returns null (e.g. nunit) in
361 OpenExeConfiguration(). Several nunit test failures are gone.
363 2006-05-10 Atsushi Enomoto <atsushi@ximian.com>
365 * ConnectionStringSettings.cs : oops, this API fix broke standalone
368 2006-05-10 Atsushi Enomoto <atsushi@ximian.com>
370 * ConfigurationElement.cs,
371 ConfigurationErrorsException.cs,
372 ConfigurationUserLevel.cs,
373 ConfigurationPropertyOptions.cs,
374 ConnectionStringSettings.cs : assorted minor corcompare fixes.
376 2006-05-10 Atsushi Enomoto <atsushi@ximian.com>
378 * Configuration.cs : some kind of refactoring is absolutely needed
379 here. Reuse RawXml from parentSection when data was not available
380 on current section. This should fix bug #78353.
382 2006-05-10 Atsushi Enomoto <atsushi@ximian.com>
384 * ConfigurationElement.cs,
386 in some cases RawXml was set null string, so skip such cases.
387 * Configuration.cs : support IConfigurationSectionHandler here.
388 * ConfigurationManager.cs : GetSection() now returns name value
389 collection, not a section.
390 * ConfigurationSection.cs : added SectionHandler for
391 IConfigurationSectionHandler support, and use its Create() in
393 * ClientConfigurationSystem.cs :
394 use GetRuntimeObject() in GetSection(). Thus now
395 ConfigurationManager.GetSection() returns a runtime object.
398 2006-04-28 Atsushi Enomoto <atsushi@ximian.com>
400 * SectionGroupInfo.cs :
401 sections which are defined in sectionGroups could be directly
402 referenced, so search corresponding section recursively.
403 * DefaultSection.cs : It does not reject unrecognized contents.
405 2006-04-26 Chris Toshok <toshok@ximian.com>
407 * SectionInformation.cs (.ctor): add MonoTODO about the default
408 value for require_permission.
409 (RequirePermission): implement the getter/setter for this so
410 Atsushi's previous commit doesn't break everything :)
412 2006-04-26 Atsushi Enomoto <atsushi@ximian.com>
415 SectionInfo.cs : added support for "requirePermission" attribute
416 in "section" element. This fixes bug #77957.
418 2006-04-25 Chris Toshok <toshok@ximian.com>
420 * ConfigurationElementCollection.cs (Reset): it makes no sense to
421 pass the typename to CreateNewElementInternal. the argument is
422 the elementname. pass null instead.
425 2006-02-01 Atsushi Enomoto <atsushi@ximian.com>
427 * ConfigurationElement.cs : ListErrors() and SetPropertyValue()
429 * ConfigurationSection.cs : the .ctor() is protected.
430 * ConfigurationElementCollection.cs : CollectionType is public.
431 Count and BaseAdd() are not virtual.
432 * ConfigurationPropertyCollection.cs : Count is not virtual.
434 2006-02-01 Chris Toshok <toshok@ximian.com>
436 * ConfigurationElement.cs: revert the patch that stores and writes
437 out xmlns attributes for all elements.
439 * ClientConfigurationSystem.cs: SupportsUserConfig == false.
441 * AppSettingsSection.cs (GetRuntimeObject): call col.SetReadOnly()
442 only if SupportsUserConfig != true.
444 * ConfigurationManager.cs (ConfigurationSystem): add a property
445 like ConfigurationFactory, and use it instead of the private field
448 2006-01-26 Chris Toshok <toshok@ximian.com>
450 * SectionGroupInfo.cs (ReadContent): handle "location" (seemingly)
453 * InternalConfigurationRoot.cs: misc logical additions. still
456 * ConfigurationManager.cs (OpenExeConfigurationInternal): throw an
457 exception if both calling_assembly and exePath are null. Allow
458 the exePath to be a path to a config file as well, checking to see
459 if it ends in .config before appending.
460 (OpenExeConfiguration): stop blindly passing
461 Assembly.GetCallingAssembly. I'm assuming this will likely break
462 .dll.config usage. need to investigate that (and write more unit
464 (GetSection): call configSystem.GetSection.
465 (RefreshSection): call configSystem.RefreshSection.
466 (ChangeConfigurationSystem): modeled after the
467 ConfigurationSettings System.Web hack - allow
468 WebConfigurationManager to replace the current
469 IInternalConfigSystem.
471 * InternalConfigurationHost.cs (InternalConfigurationHost): make
472 abstract, and remove all the NotImplenmentedException's.
474 * ConfigurationElement.cs (DeserializeElement): store off the xml
475 namespace if there is one.
476 (SerializeElement): write out the namespace if there was one.
478 * ClientConfigurationSystem.cs: new class, based on some stack
479 traces I've seen in tests. Kinda (well, not *kinda*..) hacky.
481 * Configuration.cs (NamespaceDeclared): implement.
482 (Load): don't swallow all exceptions, just the ones raised when we
483 open the stream for reading.
484 (ReadConfigFile): handle xmlns.
486 2006-01-25 Chris Toshok <toshok@ximian.com>
488 * ConfigInfo.cs (ThrowException): throw a
489 ConfigurationErrorsException, not a ConfigurationException.
491 * SectionGroupInfo.cs (ReadContent): throw an exception
492 unconditionally if we see a <location>. they aren't valid in
495 2006-01-25 Chris Toshok <toshok@ximian.com>
497 * KeyValueInternalCollection.cs: don't use a nested collection,
498 just defer to our base class. This fixes usage of
499 ConfigurationManager.AppSettings.Keys.
501 2006-01-13 Chris Toshok <toshok@ximian.com>
503 * AppSettingsSection.cs (GetRuntimeObject): only access
504 Settings[key] once per iteration.
506 2006-01-09 Chris Toshok <toshok@ximian.com>
508 * ConfigurationManager.cs (AppSettings): just return
509 AppSettingsSection.GetRuntimeObject() here.
511 * AppSettingsSection.cs: fix the "file" property to match dumper
513 (GetRuntimeObject): this returns a KeyValueInternalCollection in
516 2006-01-09 Chris Toshok <toshok@ximian.com>
518 * ElementInformation.cs (Validator): if propertyInfo == null,
519 return a DefaultValidator instance.
521 2006-01-09 Chris Toshok <toshok@ximian.com>
523 * AppSettingsSection.cs (.cctor): specify null for
526 * ProtectedProviderSettings.cs (.cctor): specify null for
529 2006-01-03 Chris Toshok <toshok@ximian.com>
531 * Configuration.cs (SaveAs): open with FileMode.OpenOrCreate so we
532 can save to a new file.
533 (CreateSection): don't bother to set the section information's
534 Name here. we'll do it in SectionInfo.CreateInstance.
536 * ProtectedConfiguration.cs (Section): new static property so we
537 can remove all the GetSection calls.
538 (GetProvider): load a named provider, optionally throwing an
539 exception if it's not found.
541 * InternalConfigurationHost.cs (EncryptSection, DecryptSection):
542 make these private interface implementations, and call
543 protectedSection.{EncryptSection,DecryptSection}.
545 * ProtectedConfigurationSection.cs (EncryptSection,
546 DecryptSection): add these two calls. They really shouldn't be
547 here, but I saw them in an MS stack trace and thought "why not?".
549 * ConfigurationSection.cs (SectionInformation): don't set
550 attributes here, that's done in SectionInfo.CreateInstance.
551 (DeserializeSection): shoehorn in the decryption stuff here. It
552 doesn't belong here, and I've added a MonoTODO about it. It
553 should live someplace like SectionInfo.ReadData (which would make
554 it similar to the encryption stuff in .WriteData).
556 * SectionInformation.cs (IsProtected): remove the special flag,
557 just return true if we have a non-null protection_provider.
558 (ProtectSection): do nothing but try to instantiate the named
560 (UnprotectSection): null out protection_provider.
562 * DpapiProtectedConfigurationProvider.cs: move the
563 NotSupportedExceptions to Decrypt/Encrypt so we don't bomb out
564 when parsing our machine.config file.
566 * RsaProtectedConfigurationProvider.cs: initial implementation.
567 much is missing (OAEP support, key importing, adding/deleting
568 keys), but it can be used.
570 2006-01-02 Chris Toshok <toshok@ximian.com>
572 * RsaProtectedConfigurationProvider.cs: implement the
573 CspProviderName and UseOAEP properties..
575 2006-01-02 Chris Toshok <toshok@ximian.com>
577 * ProtectedConfigurationSection.cs: flesh this out (and add logic
578 to instantiate providers, based on some of the standalone test
579 exception stack traces.)
581 * ProtectedConfiguration.cs: new implementation.
583 * ProtectedConfigurationProviderCollection.cs: new
586 * ProtectedProviderSettings.cs: new implementation.
588 * ProtectedConfigurationProvider.cs: trim the superclass's name.
590 * RsaProtectedConfigurationProvider.cs: stubbed, unimplemented.
592 * DpapiProtectedConfigurationProvider.cs: add stubbed
593 implementation that throws NotSupportedException telling people
594 they should be using RsaProtectedConfigurationProvider.
596 2006-01-02 Chris Toshok <toshok@ximian.com>
598 * DefaultSection.cs (Properties): implement.
600 * IgnoreSection.cs: move from lazily creating the properties
601 collection to sharing a single one across all instances.
603 * ConfigurationLockCollection.cs (IsReadOnly): fix compiler warning.
605 * ConfigurationElementCollection.cs (BaseAdd) remove logic to
606 remove an old matching element.
607 (BaseGetKey): throw an exception if @index is out of range.
609 * SectionInformation.cs (SectionName): just return name, like Name
610 does.. redundant, but it matches tests.
611 (GetRawXml): implement.
612 (SetRawXml): implement.
614 * ConfigurationSection.cs (SectionInformation): fill in
615 sectionInformation.Type before returning.
616 (DeserializeSection): save off the raw xml to our
619 * ConfigurationElement.cs (LockItem): implement.
620 (DeserializeElement): add support for the "lockItem" attribute.
622 2005-12-16 Chris Toshok <toshok@ximian.com>
624 * ConfigurationLockCollection.cs (Add): only add the name if it's
626 (IsReadOnly): always return false for the time being, in the
627 non-exceptional case.
629 2005-12-15 Chris Toshok <toshok@ximian.com>
631 * ConfigurationElement.cs (LockAllAttributesExcept): implement.
632 (LockAllElementsExcept): implement.
633 (DeserializeElement): handle the built-in attributes (lock* for
636 2005-12-15 Chris Toshok <toshok@ximian.com>
638 * ConfigurationLockCollection.cs (..ctor): don't call Populate.
640 (CheckName): make sure the passes in name is valid for this type
642 (Add): call CheckName, and set is_modified to true.
643 (Clear): set is_modified.
644 (IsReadOnly): add plausable implementation, including exception in
645 the case where the name isn't found.
646 (Remove): set is_modified.
647 (SetFromList): implement.
648 (get_AttributeList): implement.
649 (set_IsModified): add internal setter so we can clear the modified
652 2005-12-12 Chris Toshok <toshok@ximian.com>
654 * AppSettingsSection.cs (DeserializeElement): provide rather naive
655 version of the file="" handling. It's enough to make our tests
658 2005-12-11 Chris Toshok <toshok@ximian.com>
660 * ConnectionStringsSection.cs (..cctor): use "" instead of null
661 for the name of the default collection.
663 * AppSettingsSection.cs (..cctor): create a property for the
665 (DeserializeElement): call base.DeserializeElement.
666 (File): index off the property, not the name.
667 (Settings): don't use an private variable here, use
670 * ConfigurationManager.cs (GetSection): GetEntryAssembly returns
671 null for new app domains. so deal with this by calling
672 GetCallingAssembly if it's null. This is probably still wrong but
673 it doesn't NRE in xsp2.
674 (AppSettings): remove MonoTODO.
676 * KeyValueConfigurationElement.cs (..ctor): new method, create the
677 ConfigurationProperty's and the collection here.
678 (.ctor): add internal arg-less ctor.
679 (Key): use keyProp instead of "key".
680 (Value): use vlaueProp instead of "value".
681 (Properties): return our class's properties.
683 * KeyValueConfigurationCollection.cs (CreateNewElement): use the
685 (GetElementKey): re-enable the BaseIndexOf test.
687 2005-12-02 Chris Toshok <toshok@ximian.com>
689 * Configuration.cs (Save): call WriteStartDocument.
691 * ConnectionStringSettingsCollection.cs (CreateNewElement): use
692 parameter-less ctor to keep from generating exceptions when using
695 2005-12-02 Chris Toshok <toshok@ximian.com>
697 * ConnectionStringSettings.cs: tabify, fix default values, and add
698 a string validator for "name".
700 2005-12-02 Chris Toshok <toshok@ximian.com>
702 * CommaDelimitedStringCollectionConverter.cs (ConvertTo): change
703 the type check away from an exact check for
704 CommaDelimitedStringCollection to an assignable test from
705 StringCollection. This is due to the fact that AuthorizationRule
706 doesn't create CommaDelimitedStringCollections, for some odd
707 reason. It uses StringCollections.
709 * PropertyInformation.cs (Value): remove the case for
710 IsDefaultCollection - it's not necessary, as the property is an
713 * ConnectionStringSettings.cs: fix formatting and remove some
716 * ConnectionStringSettingsCollection.cs: same.
718 * ConnectionStringsSection.cs: same.
720 * ConfigurationElement.cs (SerializeToXmlElement): don't write the
721 enclosing start/end elements if the elementName is null or "".
722 this fixes the case for the DefaultCollections (at least in the
723 case of connectionStrings).
725 * IgnoreSection.cs (Properties): remove the MonoTODO.
727 * SectionInfo.cs (WriteData): remove the "<!-- dd -->" output.
729 2005-11-28 Chris Toshok <toshok@ximian.com>
731 * ProviderSettings.cs: use ConfigurationProperty's to implement
734 2005-11-24 Chris Toshok <toshok@ximian.com>
736 * ConfigurationProperty.cs (Validate): add internal method.
738 2005-11-24 Chris Toshok <toshok@ximian.com>
740 * ConfigurationElement.cs (ElementProperty): make this protected
741 internal virtual instead of public.
742 (SetPropertyValue): add a validator call and a blurb about the
743 code based on information gleaned from tests.
744 (set_Item (string)): call SetPropertyValue in the setter.
746 2005-11-14 Chris Toshok <toshok@ximian.com>
748 * CommaDelimitedStringCollection.cs: reformat things a bit, and
749 flag ToString() as override.
751 * DefaultSection.cs: new stubbed out implementation.
753 * CommaDelimitedStringCollectionConverter.cs: new implementation.
755 2005-11-10 Chris Toshok <toshok@ximian.com>
757 * AppSettingsSection.cs (DeserializeElement): stop explicitly
758 calling Settings.DeserializeElement, as the DefaultCollection
761 * ConfigurationElement.cs (DeserializeElement): rework the loop
762 here so that we actually loop over all the content elements.
764 2005-11-09 Chris Toshok <toshok@ximian.com>
766 * ConfigurationElement.cs: Add support for DefaultCollection
769 * PropertyInformation.cs (PropertyInformation.Value): add case for
772 * SectionGroupInfo.cs (SectionGroupInfo.ReadConfig): when we read
773 a "type" attribute, make sure the cached System.Type is cleared.
775 2005-10-25 Chris Toshok <toshok@ximian.com>
777 * InfiniteTimeSpanConverter.cs: new implementation.
779 * InfiniteIntConverter.cs: new implementation.
781 * GenericEnumConverter.cs: new implementation.
783 * Configuration.cs: we don't need to check with "is" after we use
784 "as".. just check for null-ness.
786 * KeyValueConfigurationCollection.cs: GetElementKey should throw
787 NRE if element == null.
789 * CommaDelimitedStringCollection.cs: raise the correct exceptions
790 in the read only case, and return null from ToString if there are
793 2005-10-25 Chris Toshok <toshok@ximian.com>
795 * PositiveTimeSpanValidatorAttribute.cs: new implementation.
797 * PositiveTimeSpanValidator.cs: new implementation.
799 2005-10-24 Chris Toshok <toshok@ximian.com>
801 * TimeSpanSecondsOrInfiniteConverter.cs: new implementation.
803 * TypeNameConverter.cs: new implementation.
805 * WhiteSpaceTrimStringConverter.cs: new implementation.
807 2005-10-24 Chris Toshok <toshok@ximian.com>
809 * AppSettingsSection.cs (DeserializeElement, SerializeSection):
810 split the behavior based on if File == "". If it is, we do the
811 default. otherwise we throw NIE.
813 * ConnectionStringsSection.cs (DeserializeElement): we shouldn't
814 need this, but we do until the IsDefaultCollection stuff is fixed.
816 * ConfigurationElementCollection.cs
817 (OnDeserializeUnrecognizedElement): for clearElementName, make
818 sure we have no attributes.
820 * ConnectionStringSettingsCollection.cs (get_Properties): for now
821 just chain up to base.Properties.
823 * ConfigurationElement.cs (ReflectProperties): do the default
824 value/property type check in a more robust way, using
827 2005-10-24 Chris Toshok <toshok@ximian.com>
829 * ConfigurationElement.cs: treat
830 ConfigurationProperty.NoDefaultValue the same as null when we're
831 checking the default value's type. this fixes t13 and 14.
833 * ConnectionStringsSection.cs (ConnectionStrings): fix the
834 DefaultValue in the ConfigurationPropertyAttribute.
836 2005-10-24 Chris Toshok <toshok@ximian.com>
838 * KeyValueConfigurationCollection.cs (GetElementKey): sacrifice
839 one test to get another working. Return a valid key even if the
840 element is not in this collection.
841 (get_ThrowOnDuplicate): return false.
843 * ConfigurationElementCollection.cs (BaseAdd): if we're adding an
844 element with the same key, overwrite the old one (remove the old
845 one after inserting the new one). Also, re-enable the throwing of
846 exceptions if ThrowOnDuplicate == true.
848 2005-10-24 Chris Toshok <toshok@ximian.com>
850 * AppSettingsSection.cs (Settings): fix ConfigurationProperty
853 * ProtectedConfigurationSection.cs (Providers): same.
855 2005-10-12 Chris Toshok <toshok@ximian.com>
857 * ConfigurationPermission.cs: flesh out as per tests.
859 2005-10-11 Chris Toshok <toshok@ximian.com>
861 * ConfigurationProperty.cs: don't use null to mean no default
862 value, use NoDefaultValue.
864 2005-10-11 Chris Toshok <toshok@ximian.com>
866 * KeyValueConfigurationCollection.cs (GetElementKey): duh.
867 BaseGet calls GetElementKey, so we were hitting an infinite
868 recursion here. Use BaseIndexOf instead.
870 2005-10-07 Chris Toshok <toshok@ximian.com>
872 * InternalConfigurationHost.cs: some interface work, adding in the
875 * ConfigurationProperty.cs: remove debug spew.
877 * Configuration.cs: add NIE'd NamespaceDeclared property.
879 * ElementInformation.cs: add NIE'd Errors property.
881 * PropertyInformationCollection.cs: add NIE'd GetObjectData().
883 * ConfigurationManager.cs: quite a bit of new work here. Some
884 definie TODO's still though.
886 2005-10-07 Chris Toshok <toshok@ximian.com>
888 * ConfigurationErrorsException.cs (.ctor): for the (string)
889 overload, chain up to the base (string) ctor.
891 2005-10-07 Chris Toshok <toshok@ximian.com>
893 * ConfigurationElement.cs (ElementMap.ReflectProperties): make
894 sure the type of the default value is compatible with that of the
895 property itself, and throw ConfigurationErrorsException if they
896 don't match. Fixes t12.
898 2005-10-07 Chris Toshok <toshok@ximian.com>
900 * ConfigHelper.cs: remove some unused code.
902 * ConfigurationProperty.cs: disambiguate the ctor we chain to.
904 * ConfigurationElement.cs (ElementProperty): implement.
905 (ElementMap.ReflectProperties): make DefaultValidator the default
908 2005-10-06 Chris Toshok <toshok@ximian.com>
910 * KeyValueConfigurationElement.cs: uncomment out some stuff.
911 (Properties): just return base.Properties. Not sure why they
912 override this, as the base class's implementation passes our test.
914 * KeyValueConfigurationCollection.cs (Add): for the keyValue
915 overload, call keyValue.Init as the unit test stack traces
916 indicates that'9s where it's called. For the string,string
917 overload, just call the keyValue overload instead of calling
919 (CreateNewElement): just use the name/value ctor, and specify ""
921 (GetElementKey): this function always returns "" for elements that
922 haven't been added to the collection. Once theyre added, it seems
923 to always return keyValue.Key.
924 (Properties): the unit tests show this returns a 0 length
927 2005-10-05 Chris Toshok <toshok@ximian.com>
929 * ConfigurationPermissionAttribute.cs: stub out.
931 2005-10-05 Chris Toshok <toshok@ximian.com>
933 * TimeSpanMinutesOrInfiniteConverter.cs: fill in the
936 2005-10-05 Chris Toshok <toshok@ximian.com>
938 * TimeSpanSecondsConverter.cs: new implementation.
940 2005-10-05 Chris Toshok <toshok@ximian.com>
942 * TimeSpanMinutesConverter.cs: flesh out implementation.
944 * ConfigurationConverterBase.cs: make all subclasses work with
945 strings only, since that's what seems to manifest itself in the
948 2005-10-05 Chris Toshok <toshok@ximian.com>
950 * ConfigurationLockCollection.cs: add NIE'd AttributeList
953 * ConfigurationConverterBase.cs: add MonoTODO'd CanConvertFrom and
954 CanConvertTo methods.
956 * ConfigurationSectionGroup.cs: add NIE'd IsDeclared property.
958 * ProtectedConfigurationSection.cs: add NIE'd properties.
960 * ConfigurationElementCollection.cs: add MonoTODO'd IsReadOnly
961 and SetReadOnly methods, and have then chain up to the base class.
963 * KeyValueConfigurationCollection.cs: add the class level
964 ConfigurationCollectionAttribute, and add a NIE'ed Properties
967 * ProviderSettingsCollection.cs: add the class level
968 ConfigurationCollectionAttribute, and add a "new" keyword to the
969 this property. Also, nuke the Provider's property.
971 * SectionInformation.cs: add some NEI'd properties.
973 * ConfigurationSection.cs (ResetModified): leave the MonoTODO, but
974 chain up to base class's method instead of throwing NIE.
976 * ConnectionStringSettingsCollection.cs: add the class-level
977 ConfigurationCollectionAttribute, and add the unimplemented
980 * ConfigurationErrorsException.cs: flesh this out, and add a
981 pragma to disable the obsolete warnings from our base class.
983 * ProviderSettings.cs: add unimplemented Properties property.
985 * ConfigurationElement.cs: remove unnecessary
986 EvaluationInformation.
988 * InternalConfigurationRoot.cs: add unimplemented IsDesignTime
991 * ConfigurationProperty.cs: add a missing ctor.
993 * AppSettingsSection.cs: add missing "override" keyword.
995 * ConnectionStringsSection.cs: remove override.
997 * ConfigurationSectionCollection.cs: AllKeys -> Keys, and add
998 unimplemented GetObjectData override.
1000 * ConfigurationSectionGroupCollection.cs: same.
1002 * ConfigurationCollectionAttribute.cs: add missing CollectionType
1005 2005-10-05 Chris Toshok <toshok@ximian.com>
1007 * ConfigurationPermission.cs: new implementation.
1009 * IgnoreSection.cs: new implementation.
1011 2005-10-05 Chris Toshok <toshok@ximian.com>
1013 * CommaDelimitedStringCollection.cs: new implementation.
1015 2005-10-05 Chris Toshok <toshok@ximian.com>
1017 * NameValueConfigurationCollection.cs: new implementation.
1019 * NameValueConfigurationElement.cs: new implementation.
1021 2005-10-05 Chris Toshok <toshok@ximian.com>
1023 * ValidatorCallback.cs: new implementation.
1025 * SubclassTypeValidator.cs, SubclassTypeValidatorAttribute.cs: new
1028 * CallbackValidator.cs, CallbackValidatorAttribute.cs: new
1031 * RegexStringValidator.cs, RegexStringValidatorAttribute.cs: new
1034 * LongValidator.cs, LongValidatorAttribute.cs: new implementation.
1036 * IntegerValidator.cs, IntegerValidatorAttribute.cs: new
1039 * DefaultValidator.cs: new implementation.
1041 2005-09-28 Chris Toshok <toshok@ximian.com>
1043 * ConfigurationElementCollection.cs: more work on the "<clear />"
1044 handling - just skip the element for now. this causes a failure
1045 in one test ('<clear hi="bye" />' doesn't throw an exception when
1046 it should), but it succeeds for collections that have required
1049 * ConnectionStringSettings.cs: providerName isn't a required
1052 * AppSettingsSection.cs (.cctor): initialize our "file" Property.
1055 (GetRuntimeObject): call the base class method instead of just
1058 * ConnectionStringsSection.cs: Add a hacky DeserializeElement
1059 method here (that isn't in MS's) for the time being so we actually
1060 deserialize our collection.
1062 2005-09-28 Chris Toshok <toshok@ximian.com>
1064 * KeyValueInternalCollection.cs: found this by way of a stack
1065 trace in one of the tests. A NameValueCollection that wraps a
1066 KeyValueConfigurationCollection.
1068 * Configuration.cs (Init): save off configPath.
1069 (EvaluationContext): new, mostly implemented.
1070 (GetSectionInstance): use IgnoreSection instead of
1072 (Load): don't fail when we can't load a file.
1074 * IgnoreSection.cs: replace RuntimeOnlySection with this new
1077 * RuntimeOnlySection.cs: nuke.
1079 2005-09-27 Chris Toshok <toshok@ximian.com>
1081 * TimeSpanMinutesOrInfiniteConverter.cs: this is sealed.
1083 2005-09-27 Chris Toshok <toshok@ximian.com>
1085 * ConfigurationProperty.cs: add IsDefaultCollection property.
1087 2005-09-27 Chris Toshok <toshok@ximian.com>
1089 * ConfigurationElementProperty.cs: new file.
1091 * ConfigurationLockCollection.cs: new file.
1093 * ConfigurationElementCollection.cs
1094 (OnDeserializeUnrecognizedElement): make sure we consume the
1095 <clear /> element so we don't into an endless loop.
1097 * ConfigurationElement.cs: add a bunch of NIE's properties.
1099 * ContextInformation.cs: Add NIE'ed IsMachineLevel property.
1101 2005-09-23 Chris Toshok <toshok@ximian.com>
1103 * AppSettingsSection.cs: fix build and add a couple of TODO'ed
1106 2005-09-23 Chris Toshok <toshok@ximian.com>
1108 * ProviderSettings.cs (Unmerge): track change to
1109 ConfigurationElement.Unmerge.
1111 * ConfigurationSection.cs: add functions nuked from
1112 ConfigurationElement here.
1114 * ConfigurationElementCollection.cs: add DebuggerDisplay attribute
1116 (BaseGetAllKeys): returns object[], not string[].
1117 (BaseGetKey): returns object, not string.
1118 (Unmerge): track change to ConfigurationElement.Unmerge signature.
1120 * ConfigurationElement.cs (ConfigurationElement.Unmerge): fix
1121 signature (drop the serializeCollectionKey parameter).
1124 2005-09-23 Chris Toshok <toshok@ximian.com>
1126 * StringValidator.cs: throw ArgumentException instead of
1127 ConfigurationErrorsException.
1129 2005-09-23 Chris Toshok <toshok@ximian.com>
1131 * ConnectionStringsSection.cs: track change to
1132 ConfigurationPropertyOptions.
1134 * ConfigurationPropertyAttribute.cs, ConfigurationProperty.cs,
1135 ProviderSettings.cs: track change to ConfigurationPropertyOptions.
1137 * ConnectionStringSettings.cs: track change to
1138 ConfigurationProprertyOptions, and add some ConfigurationProperty
1141 * ConfigurationPropertyOptions.cs: DefaultCollection ->
1142 IsDefaultCollection, Required -> IsRequired.
1144 2005-09-22 Chris Toshok <toshok@ximian.com>
1146 * PositiveTimeSpanValidator.cs: this lives in
1147 System.Web.Configuration, not System.Configuration.
1149 2005-09-22 Chris Toshok <toshok@ximian.com>
1151 * TimeSpanValidator.cs: change to ArgumentException and alter the
1154 2005-09-22 Chris Toshok <toshok@ximian.com>
1156 * ExeConfigurationFileMap.cs (ctor): init all the strings to "".
1158 2005-07-01 Lluis Sanchez Gual <lluis@novell.com>
1160 * ProviderSettings.cs: Implemented properties using property attributes.
1161 * ConfigurationElement.cs: Implemented ElementInformation property and
1162 moved there all value management.
1163 * ProtectedConfigurationProvider.cs: Set the correct base class.
1164 * SectionInformation.cs: Added missing AllowExeDefinition property.
1165 * TimeSpanValidatorAttribute.cs: Implemented.
1166 * StringValidator.cs: Implemented.
1167 * ProviderSettingsCollection.cs: Added missing class attribute.
1168 * ConfigurationSaveMode.cs: Fix enum values.
1169 * ConfigurationElementCollection.cs: Added Init method for initializing
1170 elements from properties.
1171 * StringValidatorAttribute.cs: Implemented.
1172 * ConfigurationLocation.cs: Added support for allowOverride flag.
1173 * TimeSpanMinutesOrInfiniteConverter.cs: Created skeleton class.
1174 * PositiveTimeSpanValidator.cs: Implemented.
1175 * TimeSpanMinutesConverter.cs: Created skeleton class.
1176 * SectionInfo.cs: Properly read, store and check the values of AllowLocation,
1177 AllowDefinition and AllowExeDefinition.
1178 * TimeSpanValidator.cs: Implemented.
1179 * ConfigurationConverterBase.cs: Created skeleton class.
1180 * InternalConfigurationHost.cs: Implemented IsDefinitionAllowed and
1181 VerifyDefinitionAllowed.
1182 * ConfigurationManager.cs: That class must be static.
1183 * PropertyInformationCollection.cs: Implemented.
1184 * Configuration.cs: Added some checks for AllowLocation, AllowDefinition and
1185 so on. In Save(), don't forget to save location elements.
1186 * ConfigurationProperty.cs: Keep track of collection attributes.
1187 * ConfigInfo.cs: Support overrideAllowed flag.
1188 * KeyValueConfigurationElement.cs: Define properties using attributes.
1189 * PropertyValueOrigin.cs: implemented.
1190 * PropertyInformation.cs: Mostly implemented.
1191 * SectionGroupInfo.cs: Properly propagate the overrideAllowed flag.
1192 * ElementInformation.cs: Mostly implemented.
1193 * ConfigurationPropertyAttribute.cs: Set the correct default value.
1194 * ConfigurationCollectionAttribute.cs: Implemented.
1196 2005-06-23 Lluis Sanchez Gual <lluis@novell.com>
1198 * SectionInfo.cs: Set the config host when loading the section.
1199 * InternalConfigurationHost.cs: Implemented some basic methods.
1200 * Configuration.cs: Find the correct parent for the configuration,
1201 taking into accound locations and such. Use Host functions to get
1203 * ConfigurationLocationCollection.cs: Added find method.
1204 * ConfigInfo.cs: Added Host property.
1205 * InternalConfigurationFactory.cs: The InitForConfiguration calls
1206 are now done in each correspoding configuration.
1207 * SectionGroupInfo.cs: When reading a location element, create
1208 a Configuration object for each path specified in the location.
1209 * ConfigurationElementCollection.cs: Added the CreateNewElementInternal
1210 method, which properly initializes the created element.
1211 * ConfigurationLocation.cs: OpenConfiguration now has to read the
1212 xml contents. It also has to find the correct parent configuration,
1213 if it has not been specified.
1215 2005-06-17 Lluis Sanchez Gual <lluis@novell.com>
1217 * SectionInfo.cs, ConfigInfo.cs, SectionGroupInfo.cs: Minor api fixes.
1218 * ConfigurationPropertyCollection.cs: Added Clear method.
1219 * ContextInformation.cs: Implemented.
1220 * ConfigurationManager.cs: Implemented some missing methods.
1221 Configuration objects are now created through the ConfigurationFactory.
1222 * InternalConfigurationHost.cs: Implementation of IInternalConfigHost
1223 to be used for exe files and machine.config.
1224 * ConfigurationFileMap.cs: Implemented.
1225 * Configuration.cs: Read and write config files using the methods that
1226 IInternalConfigHost provides.
1227 * InternalConfigurationRoot.cs: IInternalConfigRoot stub.
1228 * ExeContext.cs: Implemented.
1229 * AppSettingsSection.cs: Use the KeyValueConfigurationCollection
1230 collection to store values.
1231 * KeyValueConfigurationElement.cs: Implemented.
1232 * KeyValueConfigurationCollection.cs: Implemented.
1233 * InternalConfigurationFactory.cs: An implementation of
1234 IInternalConfigConfigurationFactory.
1235 * ConfigurationPropertyAttribute.cs: Added missing attributes.
1236 * ExeConfigurationFileMap.cs: Implemented.
1238 2005-06-15 Lluis Sanchez Gual <lluis@novell.com>
1240 * ConfigurationElement.cs, ConfigurationErrorsException.cs
1241 SectionInfo.cs, ConnectionStringSettingsCollection.cs,
1242 ConfigurationPropertyCollection.cs, ProtectedConfigurationProvider.cs,
1243 ConfigurationSection.cs, NonEmptyStringConfigurationProperty.cs,
1244 ConfigurationElementCollectionType.cs, Configuration.cs,
1245 ConnectionStringSettings.cs, ConfigurationProperty.cs,
1246 ConfigurationLocationCollection.cs, TimeSpanConfigurationProperty.cs,
1247 ConfigurationAllowDefinition.cs, ConfigInfo.cs,
1248 ConfigurationSectionGroupCollection.cs, AppSettingsSection.cs,
1249 ProviderSettingsCollection.cs, IntegerConfigurationProperty.cs,
1250 SectionGroupInfo.cs, ConfigurationUserLevel.cs,
1251 ConnectionStringsSection.cs, ConfigurationPropertyAttribute.cs,
1252 ConfigurationLocation.cs, ConfigurationSectionCollection.cs,
1253 ConfigurationSectionGroup.cs, RuntimeOnlySection.cs,
1254 ProviderSettings.cs:
1257 * ConfigurationElementCollection.cs: Implemented support for Basic
1258 collection type. Other fixes.
1260 * ConfigurationPropertyFlags.cs: Renamed to ConfigurationPropertyOptions.
1261 * ConfigurationUpdateMode.cs: Renamed to ConfigurationSaveMode.
1263 * SectionInformation.cs, ConfigurationAllowExeDefinition.cs
1264 ConfigurationManager.cs, ConfigurationSaveMode.cs,
1265 ConfigurationValidatorAttribute.cs, ProtectedConfigurationSection.cs,
1266 ConfigurationValidatorBase.cs, ConfigurationPropertyOptions.cs:
1269 * ConfigurationValidationAttribute.cs: Removed.
1271 * ProviderBase.cs: Moved to System.dll.
1273 2005-06-14 Lluis Sanchez Gual <lluis@novell.com>
1275 * AppSettingsSection.cs, ConfigInfo.cs, Configuration.cs
1276 ConfigurationAllowDefinition.cs, ConfigurationElement.cs
1277 ConfigurationElementCollection.cs, ConfigurationElementCollectionType.cs
1278 ConfigurationLocation.cs, ConfigurationLocationCollection.cs
1279 ConfigurationProperty.cs, ConfigurationPropertyAttribute.cs
1280 ConfigurationPropertyCollection.cs, ConfigurationPropertyFlags.cs
1281 ConfigurationSection.cs, ConfigurationSectionCollection.cs
1282 ConfigurationSectionGroup.cs, ConfigurationSectionGroupCollection.cs
1283 ConfigurationUpdateMode.cs, ConfigurationUserLevel.cs
1284 ConfigurationValidationAttribute.cs, ConnectionStringsSection.cs
1285 ConnectionStringSettingsCollection.cs, ConnectionStringSettings.cs
1286 IntegerConfigurationProperty.cs, NonEmptyStringConfigurationProperty.cs
1287 NonEmptyStringFlags.cs, PathLevel.cs, ProtectedConfigurationProvider.cs
1288 ProviderBase.cs, ProviderSettings.cs, ProviderSettingsCollection.cs
1289 RuntimeOnlySection.cs, SectionInfo.cs, SectionGroupInfo.cs
1290 TimeSpanConfigurationProperty.cs, TimeSpanPropertyFlags.cs
1291 TimeSpanSerializedFormat.cs:
1293 Moved from the System assembly.