2007-06-13 Atsushi Enomoto <atsushi@ximian.com>
[mono.git] / mcs / class / System.Configuration / System.Configuration / ChangeLog
1 2007-06-13  Atsushi Enomoto  <atsushi@ximian.com>
2
3         * ConfigurationSectionGroup.cs
4           Configuration.cs : ConfigurationSectionGroup must be initialized
5           at least when being added to a collection.
6
7 2007-06-12  Vladimir Krasnov  <vladimirk@mainsoft.com>
8
9         * ConfigurationElement.cs: refactored GetKeyProperties and
10         GetDefaultCollection methods, map should not be used here, Properties
11         will do instead. Refactored ElementMap class
12         * ConfigurationElementCollection.cs: fixed InitFromProperty, GetMap()
13         should not be called here
14         * ElementInformation.cs: fixed Properties, moved to ctor to be thread
15         safe
16         * PropertyInformation.cs: members assigned readonly modifier
17
18 2007-05-30  Marek Habersack  <mhabersack@novell.com>
19
20         * SectionGroupInfo.cs: <location> elements are case-insensitive
21         and the same 'path' attribute may be used only once.
22
23         * ConfigurationLocationCollection.cs: Find should be
24         case-insensitive for all targets, not just TARGET_JVM.
25
26 2007-05-17 Igor Zelmanovich <igorz@mainsoft.com>
27
28         * Configuration.cs: FilePath implemented according to MSDN:
29         If the value for this FilePath property represents a merged view and 
30         no actual file exists for the application, the path to the parent 
31         configuration file is returned.
32
33 2007-05-15 Igor Zelmanovich <igorz@mainsoft.com>
34
35         * Configuration.cs:
36         * ConfigurationLocation.cs:
37         implemented EvaluationContext property.         
38
39 2007-05-15 Igor Zelmanovich <igorz@mainsoft.com>
40
41         * ConfigurationLocationCollection.cs: for TARGET_JVM only:
42         location path is case-insensitive.
43                 
44 2007-05-15  Marek Habersack  <mhabersack@novell.com>
45
46         * ConfigurationElement.cs: added value validation on
47         deserialization from the config file.
48
49 2007-05-14 Igor Zelmanovich <igorz@mainsoft.com>
50
51         * ConfigurationElement.cs: when attribute value cannot be parsed,
52         ConfigurationErrorException is thrown.
53                 
54 2007-05-09 Igor Zelmanovich <igorz@mainsoft.com>
55
56         * ConfigurationManager.cs:
57         added MonoLimitation attribute for TARGATE_JVM. 
58                 
59 2007-05-08 Igor Zelmanovich <igorz@mainsoft.com>
60
61         * ConnectionStringSettingsCollection.cs: removed 'new' keyword, cause 
62         property doesn't hide any inherit property.
63
64 2007-04-24  Atsushi Enomoto  <atsushi@ximian.com>
65
66         * InternalConfigurationHost.cs : machine configuration covers all
67           ConfigurationAllowDefinition values.
68
69 2007-04-17  Atsushi Enomoto  <atsushi@ximian.com>
70
71         * ConfigurationSectionCollection.cs : GetEnumerator() should return
72           IEnumerator for the items, not keys.
73         * ConfigurationProperty.cs : more helpful type mismatch message.
74
75 2007-04-16  Marek Habersack  <mhabersack@novell.com>
76
77         * SectionGroupInfo.cs: another (and final, hopefully) fix for bug
78         #81321 and several other related issues that were discovered by
79         the way. Thanks to Atsushi for help with XmlReader!
80
81 2007-04-15  Marek Habersack  <mhabersack@novell.com>
82
83         * SectionGroupInfo.cs: another incarnation of the fix for bug
84         #81321.
85
86 2007-04-12  Marek Habersack  <mhabersack@novell.com>
87
88         * SectionGroupInfo.cs: a better fix for #81321
89
90 2007-04-10  Marek Habersack  <mhabersack@novell.com>
91
92         * SectionGroupInfo.cs: make sure empty sections with the
93         short-circuit tag ends (<section/>) don't make the process loop
94         endlessly. Fixes bug #81321.
95
96 2007-03-22  Konstantin Triger <kostat@mainsoft.com>
97
98         * ConfigInfo.cs: should be able instantiate types with private ctors.
99
100 2007-03-19  Vladimir Krasnov  <vladimirk@mainsoft.com>
101
102         * ConfigurationSectionCollection.cs,
103         * ConfigurationSectionGroupCollection.cs,
104         * PropertyInformationCollection.cs, 
105         * SectionGroupInfo.cs: used StringComparer.Ordinal instead of
106         OrdinalComparer
107
108 2007-03-15  Vladimir Krasnov  <vladimirk@mainsoft.com>
109
110         * ConfigurationSectionCollection.cs,
111         * ConfigurationSectionGroupCollection.cs,
112         * PropertyInformationCollection.cs, 
113         * SectionGroupInfo.cs: these collections should be based on case
114         insensitive NameObjectCollectionBase
115         * added OrdinalComparer.cs for use in NameObjectCollectionBase
116
117 2007-02-07  Atsushi Enomoto  <atsushi@ximian.com>
118
119         * SectionInfo.cs : don't stop at restartOnExternalChanges attribute.
120
121 2007-01-16  Konstantin Triger <kostat@mainsoft.com>
122
123         * ConfigurationElement.cs: ignore properties with null or empty name.
124
125 2007-01-16  Konstantin Triger <kostat@mainsoft.com>
126
127         * ConfigurationElement.cs: Try to deserilalize an unrecognized element by
128                 current element, and only if failed delegate to default collection.
129
130 2006-12-27  Vladimir Krasnov  <vladimirk@mainsoft.com>
131
132         * ConfigurationElementCollection.cs: fixed BaseAdd, looking for
133         identical element when collection type is not alternate
134
135 2006-12-27  Vladimir Krasnov  <vladimirk@mainsoft.com>
136
137         * ConnectionStringSettingsCollection.cs: made connection string key
138         case insensitive
139
140 2006-12-27  Atsushi Enomoto  <atsushi@ximian.com>
141
142         * ConfigurationElementCollection.cs : fixed BaseAdd() with
143           throwIfExists to not raise an error for identical element
144           but for different element which shares the same key. Fix by
145           Konstantin Triger.
146
147 2006-12-21  Vladimir Krasnov  <vladimirk@mainsoft.com>
148
149         * ConfigurationProperty.cs: fixed DefaultValue of type Enum
150
151 2006-12-10  Konstantin Triger <kostat@mainsoft.com>
152
153         * ConfigurationElement.cs: Delegate parameter checking and default
154                 assigning to Configuratin property.
155         * ConfigurationProperty.cs:
156                 Ensure the TypeConvert and Validator always exist.
157                 Ensure the primitive types are properly initialized.
158
159 2006-12-09  Vladimir Krasnov  <vladimirk@mainsoft.com>
160
161         * ConfigurationElementCollection.cs
162         * ConfigurationRemoveElement.cs: fixed key for <remove> element in
163         ConfigurationRemoveElement class
164
165 2006-11-28  Marek Habersack  <grendello@gmail.com>
166
167         * SectionGroupInfo.cs: Implement merging of section groups with
168         the same names and parents.
169
170         * ConfigInfo.cs: Add an abstract method for merging sections.
171
172         * SectionInfo.cs: Add implementation of an abstract base method
173
174 2006-08-23  Konstantin Triger <kostat@mainsoft.com>
175
176         * SectionInfo.cs: refactoring - remove unneeded bool? usage.
177         
178 2006-11-05  Vladimir Krasnov  <vladimirk@mainsoft.com>
179
180         * added: ConfigurationRemoveElement.cs, common element for <remove>
181         * ConnectionStringSettingsCollection.cs: reverted last fix for
182         <remove> element
183         * ConfigurationElementCollection.cs: fixed the way that
184         OnDeserializeUnrecognizedElement method handles <remove> element
185
186 2006-11-02  Vladimir Krasnov  <vladimirk@mainsoft.com>
187
188         * ConfigurationElement.cs: typo in DefaultCollectionProperty
189         method
190
191 2006-10-30  Joel Reed <joel.reed@ddiworld.com>
192
193         * NameValueConfigurationCollection.cs: Implement the Properties
194         property. 
195
196 2006-08-23  Konstantin Triger <kostat@mainsoft.com>
197
198         * ConfigurationLocation.cs: do not read root element, correctly close stream.
199         * Configuration.cs: use ReadData for nested content to throw if location
200                 elements are encounterd.
201                 In constructor taking parent Configurqation: do not call Init and so avoid
202                 rereading config file.
203
204 2006-09-05  Vladimir Krasnov  <vladimirk@mainsoft.com>
205
206         * NameValueConfigurationElement.cs: fixed functionality
207         * ConfigurationElementCollection.cs,
208         ConnectionStringSettingsCollection.cs: fixed <remove> element in
209         connectionStrings section
210
211 2006-08-23  Konstantin Triger <kostat@mainsoft.com>
212
213         * ConfigurationSection.cs: for net 1.1 SectionHandlers: return null in case
214                 RawXml is null, as net 1.1 does.
215
216 2006-08-17  Vladimir Krasnov  <vladimirk@mainsoft.com>
217
218         * ConfigurationFileMap.cs: added TARGET_JVM on not supported members
219         in grasshopper
220
221 2006-07-07  Atsushi Enomoto  <atsushi@ximian.com>
222
223         * ConfigurationManager.cs : OpenExeConfiguration(null) should still
224           work. This is required for embedded scenario.
225
226 2006-06-10  Atsushi Enomoto  <atsushi@ximian.com>
227
228         * SectionGroupInfo.cs : skip <dllmap> in configuration.
229
230 2006-05-14  Atsushi Enomoto  <atsushi@ximian.com>
231
232         * ConfigurationManager.cs: since ConfigurationSystem is different
233           for web.config, cast from ConfigurationSection to runtime object
234           should be done at GetSection().
235           This really fixed bug #78372.
236
237 2006-05-12  Atsushi Enomoto  <atsushi@ximian.com>
238
239         * Configuration.cs : configPath is null for machine.config, so don't
240           use it. Use streamName instead. To my understanding, this should
241           fix bug #78372.
242
243 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
244
245         * ConnectionStringSettings.cs : it seems that "name" property
246           could be null i.e. there is no StringValidator.
247         * StringValidator.cs : allow null.
248
249 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
250
251         * ConfigurationManager.cs : use GetCallingAssembly() instead of
252           GetEntryAssembly() which possibly returns null (e.g. nunit) in
253           OpenExeConfiguration(). Several nunit test failures are gone.
254
255 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
256
257         * ConnectionStringSettings.cs : oops, this API fix broke standalone
258           test.
259
260 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
261
262         * ConfigurationElement.cs,
263           ConfigurationErrorsException.cs,
264           ConfigurationUserLevel.cs,
265           ConfigurationPropertyOptions.cs,
266           ConnectionStringSettings.cs : assorted minor corcompare fixes.
267
268 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
269
270         * Configuration.cs : some kind of refactoring is absolutely needed
271           here. Reuse RawXml from parentSection when data was not available
272           on current section. This should fix bug #78353.
273
274 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
275
276         * ConfigurationElement.cs,
277           DefaultSection.cs :
278           in some cases RawXml was set null string, so skip such cases.
279         * Configuration.cs : support IConfigurationSectionHandler here.
280         * ConfigurationManager.cs : GetSection() now returns name value
281           collection, not a section.
282         * ConfigurationSection.cs : added SectionHandler for
283           IConfigurationSectionHandler support, and use its Create() in
284           GetRuntimeObject().
285         * ClientConfigurationSystem.cs :
286           use GetRuntimeObject() in GetSection(). Thus now
287           ConfigurationManager.GetSection() returns a runtime object.
288           Fixed bug #78337.
289
290 2006-04-28  Atsushi Enomoto  <atsushi@ximian.com>
291
292         * SectionGroupInfo.cs :
293           sections which are defined in sectionGroups could be directly
294           referenced, so search corresponding section recursively.
295         * DefaultSection.cs : It does not reject unrecognized contents.
296
297 2006-04-26  Chris Toshok  <toshok@ximian.com>
298
299         * SectionInformation.cs (.ctor): add MonoTODO about the default
300         value for require_permission.
301         (RequirePermission): implement the getter/setter for this so
302         Atsushi's previous commit doesn't break everything :)
303
304 2006-04-26  Atsushi Enomoto  <atsushi@ximian.com>
305
306         * Configuration.cs,
307           SectionInfo.cs : added support for "requirePermission" attribute
308           in "section" element. This fixes bug #77957.
309
310 2006-04-25  Chris Toshok  <toshok@ximian.com>
311
312         * ConfigurationElementCollection.cs (Reset): it makes no sense to
313         pass the typename to CreateNewElementInternal.  the argument is
314         the elementname. pass null instead.
315         (Unmerge): same.
316
317 2006-02-01  Atsushi Enomoto  <atsushi@ximian.com>
318
319         * ConfigurationElement.cs : ListErrors() and SetPropertyValue()
320           are protected.
321         * ConfigurationSection.cs : the .ctor() is protected.
322         * ConfigurationElementCollection.cs : CollectionType is public.
323           Count and BaseAdd() are not virtual.
324         * ConfigurationPropertyCollection.cs : Count is not virtual.
325
326 2006-02-01  Chris Toshok  <toshok@ximian.com>
327
328         * ConfigurationElement.cs: revert the patch that stores and writes
329         out xmlns attributes for all elements.
330
331         * ClientConfigurationSystem.cs: SupportsUserConfig == false.
332
333         * AppSettingsSection.cs (GetRuntimeObject): call col.SetReadOnly()
334         only if SupportsUserConfig != true.
335
336         * ConfigurationManager.cs (ConfigurationSystem): add a property
337         like ConfigurationFactory, and use it instead of the private field
338         throughout.
339
340 2006-01-26  Chris Toshok  <toshok@ximian.com>
341
342         * SectionGroupInfo.cs (ReadContent): handle "location" (seemingly)
343         correctly.
344
345         * InternalConfigurationRoot.cs: misc logical additions.  still
346         isn't useful.
347
348         * ConfigurationManager.cs (OpenExeConfigurationInternal): throw an
349         exception if both calling_assembly and exePath are null.  Allow
350         the exePath to be a path to a config file as well, checking to see
351         if it ends in .config before appending.
352         (OpenExeConfiguration): stop blindly passing
353         Assembly.GetCallingAssembly.  I'm assuming this will likely break
354         .dll.config usage.  need to investigate that (and write more unit
355         tests.)
356         (GetSection): call configSystem.GetSection.
357         (RefreshSection): call configSystem.RefreshSection.
358         (ChangeConfigurationSystem): modeled after the
359         ConfigurationSettings System.Web hack - allow
360         WebConfigurationManager to replace the current
361         IInternalConfigSystem.
362
363         * InternalConfigurationHost.cs (InternalConfigurationHost): make
364         abstract, and remove all the NotImplenmentedException's.
365
366         * ConfigurationElement.cs (DeserializeElement): store off the xml
367         namespace if there is one.
368         (SerializeElement): write out the namespace if there was one.
369
370         * ClientConfigurationSystem.cs: new class, based on some stack
371         traces I've seen in tests.  Kinda (well, not *kinda*..) hacky.
372
373         * Configuration.cs (NamespaceDeclared): implement.
374         (Load): don't swallow all exceptions, just the ones raised when we
375         open the stream for reading.
376         (ReadConfigFile): handle xmlns.
377
378 2006-01-25  Chris Toshok  <toshok@ximian.com>
379
380         * ConfigInfo.cs (ThrowException): throw a
381         ConfigurationErrorsException, not a ConfigurationException.
382
383         * SectionGroupInfo.cs (ReadContent): throw an exception
384         unconditionally if we see a <location>.  they aren't valid in
385         section groups.
386
387 2006-01-25  Chris Toshok  <toshok@ximian.com>
388
389         * KeyValueInternalCollection.cs: don't use a nested collection,
390         just defer to our base class.  This fixes usage of
391         ConfigurationManager.AppSettings.Keys.
392
393 2006-01-13  Chris Toshok  <toshok@ximian.com>
394
395         * AppSettingsSection.cs (GetRuntimeObject): only access
396         Settings[key] once per iteration.
397
398 2006-01-09  Chris Toshok  <toshok@ximian.com>
399
400         * ConfigurationManager.cs (AppSettings): just return
401         AppSettingsSection.GetRuntimeObject() here.
402
403         * AppSettingsSection.cs: fix the "file" property to match dumper
404         output.
405         (GetRuntimeObject): this returns a KeyValueInternalCollection in
406         MS's implementation.
407
408 2006-01-09  Chris Toshok  <toshok@ximian.com>
409
410         * ElementInformation.cs (Validator): if propertyInfo == null,
411         return a DefaultValidator instance.
412
413 2006-01-09  Chris Toshok  <toshok@ximian.com>
414
415         * AppSettingsSection.cs (.cctor): specify null for
416         validator/converter.
417
418         * ProtectedProviderSettings.cs (.cctor): specify null for
419         validator/converter.
420
421 2006-01-03  Chris Toshok  <toshok@ximian.com>
422
423         * Configuration.cs (SaveAs): open with FileMode.OpenOrCreate so we
424         can save to a new file.
425         (CreateSection): don't bother to set the section information's
426         Name here.  we'll do it in SectionInfo.CreateInstance.
427
428         * ProtectedConfiguration.cs (Section): new static property so we
429         can remove all the GetSection calls.
430         (GetProvider): load a named provider, optionally throwing an
431         exception if it's not found.
432
433         * InternalConfigurationHost.cs (EncryptSection, DecryptSection):
434         make these private interface implementations, and call
435         protectedSection.{EncryptSection,DecryptSection}.
436
437         * ProtectedConfigurationSection.cs (EncryptSection,
438         DecryptSection): add these two calls.  They really shouldn't be
439         here, but I saw them in an MS stack trace and thought "why not?".
440
441         * ConfigurationSection.cs (SectionInformation): don't set
442         attributes here, that's done in SectionInfo.CreateInstance.
443         (DeserializeSection): shoehorn in the decryption stuff here.  It
444         doesn't belong here, and I've added a MonoTODO about it.  It
445         should live someplace like SectionInfo.ReadData (which would make
446         it similar to the encryption stuff in .WriteData).
447
448         * SectionInformation.cs (IsProtected): remove the special flag,
449         just return true if we have a non-null protection_provider.
450         (ProtectSection): do nothing but try to instantiate the named
451         provider.
452         (UnprotectSection): null out protection_provider.
453
454         * DpapiProtectedConfigurationProvider.cs: move the
455         NotSupportedExceptions to Decrypt/Encrypt so we don't bomb out
456         when parsing our machine.config file.
457
458         * RsaProtectedConfigurationProvider.cs: initial implementation.
459         much is missing (OAEP support, key importing, adding/deleting
460         keys), but it can be used.
461
462 2006-01-02  Chris Toshok  <toshok@ximian.com>
463
464         * RsaProtectedConfigurationProvider.cs: implement the
465         CspProviderName and UseOAEP properties..
466
467 2006-01-02  Chris Toshok  <toshok@ximian.com>
468
469         * ProtectedConfigurationSection.cs: flesh this out (and add logic
470         to instantiate providers, based on some of the standalone test
471         exception stack traces.)
472
473         * ProtectedConfiguration.cs: new implementation.
474
475         * ProtectedConfigurationProviderCollection.cs: new
476         implementation.
477
478         * ProtectedProviderSettings.cs: new implementation.
479
480         * ProtectedConfigurationProvider.cs: trim the superclass's name.
481
482         * RsaProtectedConfigurationProvider.cs: stubbed, unimplemented.
483
484         * DpapiProtectedConfigurationProvider.cs: add stubbed
485         implementation that throws NotSupportedException telling people
486         they should be using RsaProtectedConfigurationProvider.
487
488 2006-01-02  Chris Toshok  <toshok@ximian.com>
489
490         * DefaultSection.cs (Properties): implement.
491
492         * IgnoreSection.cs: move from lazily creating the properties
493         collection to sharing a single one across all instances.
494
495         * ConfigurationLockCollection.cs (IsReadOnly): fix compiler warning.
496
497         * ConfigurationElementCollection.cs (BaseAdd) remove logic to
498         remove an old matching element.
499         (BaseGetKey): throw an exception if @index is out of range.
500
501         * SectionInformation.cs (SectionName): just return name, like Name
502         does.. redundant, but it matches tests.
503         (GetRawXml): implement.
504         (SetRawXml): implement.
505
506         * ConfigurationSection.cs (SectionInformation): fill in
507         sectionInformation.Type before returning.
508         (DeserializeSection): save off the raw xml to our
509         SectionInformation.
510
511         * ConfigurationElement.cs (LockItem): implement.
512         (DeserializeElement): add support for the "lockItem" attribute.
513
514 2005-12-16  Chris Toshok  <toshok@ximian.com>
515
516         * ConfigurationLockCollection.cs (Add): only add the name if it's
517         not already there.
518         (IsReadOnly): always return false for the time being, in the
519         non-exceptional case.
520
521 2005-12-15  Chris Toshok  <toshok@ximian.com>
522
523         * ConfigurationElement.cs (LockAllAttributesExcept): implement.
524         (LockAllElementsExcept): implement.
525         (DeserializeElement): handle the built-in attributes (lock* for
526         the time being).
527
528 2005-12-15  Chris Toshok  <toshok@ximian.com>
529
530         * ConfigurationLockCollection.cs (..ctor): don't call Populate.
531         (Populate): nuke.
532         (CheckName): make sure the passes in name is valid for this type
533         of lock collection.
534         (Add): call CheckName, and set is_modified to true.
535         (Clear): set is_modified.
536         (IsReadOnly): add plausable implementation, including exception in
537         the case where the name isn't found.
538         (Remove): set is_modified.
539         (SetFromList): implement.
540         (get_AttributeList): implement.
541         (set_IsModified): add internal setter so we can clear the modified
542         flag.
543
544 2005-12-12  Chris Toshok  <toshok@ximian.com>
545
546         * AppSettingsSection.cs (DeserializeElement): provide rather naive
547         version of the file="" handling.  It's enough to make our tests
548         pass.
549
550 2005-12-11  Chris Toshok  <toshok@ximian.com>
551
552         * ConnectionStringsSection.cs (..cctor): use "" instead of null
553         for the name of the default collection.
554
555         * AppSettingsSection.cs (..cctor): create a property for the
556         default collection.
557         (DeserializeElement): call base.DeserializeElement.
558         (File): index off the property, not the name.
559         (Settings): don't use an private variable here, use
560         base[_propSettings].
561
562         * ConfigurationManager.cs (GetSection): GetEntryAssembly returns
563         null for new app domains.  so deal with this by calling
564         GetCallingAssembly if it's null.  This is probably still wrong but
565         it doesn't NRE in xsp2.
566         (AppSettings): remove MonoTODO.
567         
568         * KeyValueConfigurationElement.cs (..ctor): new method, create the
569         ConfigurationProperty's and the collection here.
570         (.ctor): add internal arg-less ctor.
571         (Key): use keyProp instead of "key".
572         (Value): use vlaueProp instead of "value".
573         (Properties): return our class's properties.
574
575         * KeyValueConfigurationCollection.cs (CreateNewElement): use the
576         arg-less ctor.
577         (GetElementKey): re-enable the BaseIndexOf test.
578
579 2005-12-02  Chris Toshok  <toshok@ximian.com>
580
581         * Configuration.cs (Save): call WriteStartDocument.
582
583         * ConnectionStringSettingsCollection.cs (CreateNewElement): use
584         parameter-less ctor to keep from generating exceptions when using
585         the collection.
586
587 2005-12-02  Chris Toshok  <toshok@ximian.com>
588
589         * ConnectionStringSettings.cs: tabify, fix default values, and add
590         a string validator for "name".
591
592 2005-12-02  Chris Toshok  <toshok@ximian.com>
593
594         * CommaDelimitedStringCollectionConverter.cs (ConvertTo): change
595         the type check away from an exact check for
596         CommaDelimitedStringCollection to an assignable test from
597         StringCollection.  This is due to the fact that AuthorizationRule
598         doesn't create CommaDelimitedStringCollections, for some odd
599         reason.  It uses StringCollections.
600
601         * PropertyInformation.cs (Value): remove the case for
602         IsDefaultCollection - it's not necessary, as the property is an
603         Element.
604
605         * ConnectionStringSettings.cs: fix formatting and remove some
606         #regions.
607
608         * ConnectionStringSettingsCollection.cs: same.
609
610         * ConnectionStringsSection.cs: same.
611
612         * ConfigurationElement.cs (SerializeToXmlElement): don't write the
613         enclosing start/end elements if the elementName is null or "".
614         this fixes the case for the DefaultCollections (at least in the
615         case of connectionStrings).
616
617         * IgnoreSection.cs (Properties): remove the MonoTODO.
618
619         * SectionInfo.cs (WriteData): remove the "<!-- dd -->" output.
620
621 2005-11-28  Chris Toshok  <toshok@ximian.com>
622
623         * ProviderSettings.cs: use ConfigurationProperty's to implement
624         the properties.
625
626 2005-11-24  Chris Toshok  <toshok@ximian.com>
627
628         * ConfigurationProperty.cs (Validate): add internal method.
629
630 2005-11-24  Chris Toshok  <toshok@ximian.com>
631
632         * ConfigurationElement.cs (ElementProperty): make this protected
633         internal virtual instead of public.
634         (SetPropertyValue): add a validator call and a blurb about the
635         code based on information gleaned from tests.
636         (set_Item (string)): call SetPropertyValue in the setter.
637         
638 2005-11-14  Chris Toshok  <toshok@ximian.com>
639
640         * CommaDelimitedStringCollection.cs: reformat things a bit, and
641         flag ToString() as override.
642
643         * DefaultSection.cs: new stubbed out implementation.
644
645         * CommaDelimitedStringCollectionConverter.cs: new implementation.
646
647 2005-11-10  Chris Toshok  <toshok@ximian.com>
648
649         * AppSettingsSection.cs (DeserializeElement): stop explicitly
650         calling Settings.DeserializeElement, as the DefaultCollection
651         works now.
652
653         * ConfigurationElement.cs (DeserializeElement): rework the loop
654         here so that we actually loop over all the content elements.
655
656 2005-11-09  Chris Toshok  <toshok@ximian.com>
657
658         * ConfigurationElement.cs: Add support for DefaultCollection
659         attributes.
660
661         * PropertyInformation.cs (PropertyInformation.Value): add case for
662         IsDefaultCollection.
663
664         * SectionGroupInfo.cs (SectionGroupInfo.ReadConfig): when we read
665         a "type" attribute, make sure the cached System.Type is cleared.
666
667 2005-10-25  Chris Toshok  <toshok@ximian.com>
668
669         * InfiniteTimeSpanConverter.cs: new implementation.
670
671         * InfiniteIntConverter.cs: new implementation.
672
673         * GenericEnumConverter.cs: new implementation.
674
675         * Configuration.cs: we don't need to check with "is" after we use
676         "as"..  just check for null-ness.
677
678         * KeyValueConfigurationCollection.cs: GetElementKey should throw
679         NRE if element == null.
680
681         * CommaDelimitedStringCollection.cs: raise the correct exceptions
682         in the read only case, and return null from ToString if there are
683         0 elements.
684
685 2005-10-25  Chris Toshok  <toshok@ximian.com>
686
687         * PositiveTimeSpanValidatorAttribute.cs: new implementation.
688
689         * PositiveTimeSpanValidator.cs: new implementation.
690
691 2005-10-24  Chris Toshok  <toshok@ximian.com>
692
693         * TimeSpanSecondsOrInfiniteConverter.cs: new implementation.
694
695         * TypeNameConverter.cs: new implementation.
696
697         * WhiteSpaceTrimStringConverter.cs: new implementation.
698
699 2005-10-24  Chris Toshok  <toshok@ximian.com>
700
701         * AppSettingsSection.cs (DeserializeElement, SerializeSection):
702         split the behavior based on if File == "".  If it is, we do the
703         default.  otherwise we throw NIE.
704
705         * ConnectionStringsSection.cs (DeserializeElement): we shouldn't
706         need this, but we do until the IsDefaultCollection stuff is fixed.
707
708         * ConfigurationElementCollection.cs
709         (OnDeserializeUnrecognizedElement): for clearElementName, make
710         sure we have no attributes.
711
712         * ConnectionStringSettingsCollection.cs (get_Properties): for now
713         just chain up to base.Properties.
714
715         * ConfigurationElement.cs (ReflectProperties): do the default
716         value/property type check in a more robust way, using
717         Convert.ChangeType.
718
719 2005-10-24  Chris Toshok  <toshok@ximian.com>
720
721         * ConfigurationElement.cs: treat
722         ConfigurationProperty.NoDefaultValue the same as null when we're
723         checking the default value's type.  this fixes t13 and 14.
724
725         * ConnectionStringsSection.cs (ConnectionStrings): fix the
726         DefaultValue in the ConfigurationPropertyAttribute.
727
728 2005-10-24  Chris Toshok  <toshok@ximian.com>
729
730         * KeyValueConfigurationCollection.cs (GetElementKey): sacrifice
731         one test to get another working.  Return a valid key even if the
732         element is not in this collection.
733         (get_ThrowOnDuplicate): return false.
734
735         * ConfigurationElementCollection.cs (BaseAdd): if we're adding an
736         element with the same key, overwrite the old one (remove the old
737         one after inserting the new one).  Also, re-enable the throwing of
738         exceptions if ThrowOnDuplicate == true.
739
740 2005-10-24  Chris Toshok  <toshok@ximian.com>
741
742         * AppSettingsSection.cs (Settings): fix ConfigurationProperty
743         attribute.
744
745         * ProtectedConfigurationSection.cs (Providers): same.
746
747 2005-10-12  Chris Toshok  <toshok@ximian.com>
748
749         * ConfigurationPermission.cs: flesh out as per tests.
750
751 2005-10-11  Chris Toshok  <toshok@ximian.com>
752
753         * ConfigurationProperty.cs: don't use null to mean no default
754         value, use NoDefaultValue.
755
756 2005-10-11  Chris Toshok  <toshok@ximian.com>
757
758         * KeyValueConfigurationCollection.cs (GetElementKey): duh.
759         BaseGet calls GetElementKey, so we were hitting an infinite
760         recursion here.  Use BaseIndexOf instead.
761
762 2005-10-07  Chris Toshok  <toshok@ximian.com>
763
764         * InternalConfigurationHost.cs: some interface work, adding in the
765         new methods.
766
767         * ConfigurationProperty.cs: remove debug spew.
768
769         * Configuration.cs: add NIE'd NamespaceDeclared property.
770
771         * ElementInformation.cs: add NIE'd Errors property.
772
773         * PropertyInformationCollection.cs: add NIE'd GetObjectData().
774
775         * ConfigurationManager.cs: quite a bit of new work here.  Some
776         definie TODO's still though.
777
778 2005-10-07  Chris Toshok  <toshok@ximian.com>
779
780         * ConfigurationErrorsException.cs (.ctor): for the (string)
781         overload, chain up to the base (string) ctor.
782
783 2005-10-07  Chris Toshok  <toshok@ximian.com>
784
785         * ConfigurationElement.cs (ElementMap.ReflectProperties): make
786         sure the type of the default value is compatible with that of the
787         property itself, and throw ConfigurationErrorsException if they
788         don't match.  Fixes t12.
789
790 2005-10-07  Chris Toshok  <toshok@ximian.com>
791
792         * ConfigHelper.cs: remove some unused code.
793
794         * ConfigurationProperty.cs: disambiguate the ctor we chain to.
795
796         * ConfigurationElement.cs (ElementProperty): implement.
797         (ElementMap.ReflectProperties): make DefaultValidator the default
798         validator, not null.
799
800 2005-10-06  Chris Toshok  <toshok@ximian.com>
801
802         * KeyValueConfigurationElement.cs: uncomment out some stuff.
803         (Properties): just return base.Properties.  Not sure why they
804         override this, as the base class's implementation passes our test.
805
806         * KeyValueConfigurationCollection.cs (Add): for the keyValue
807         overload, call keyValue.Init as the unit test stack traces
808         indicates that'9s where it's called.  For the string,string
809         overload, just call the keyValue overload instead of calling
810         BaseAdd.
811         (CreateNewElement): just use the name/value ctor, and specify ""
812         for each.
813         (GetElementKey): this function always returns "" for elements that
814         haven't been added to the collection.  Once theyre added, it seems
815         to always return keyValue.Key.
816         (Properties): the unit tests show this returns a 0 length
817         collection.
818
819 2005-10-05  Chris Toshok  <toshok@ximian.com>
820
821         * ConfigurationPermissionAttribute.cs: stub out.
822
823 2005-10-05  Chris Toshok  <toshok@ximian.com>
824
825         * TimeSpanMinutesOrInfiniteConverter.cs: fill in the
826         implementation.
827
828 2005-10-05  Chris Toshok  <toshok@ximian.com>
829
830         * TimeSpanSecondsConverter.cs: new implementation.
831
832 2005-10-05  Chris Toshok  <toshok@ximian.com>
833
834         * TimeSpanMinutesConverter.cs: flesh out implementation.
835
836         * ConfigurationConverterBase.cs: make all subclasses work with
837         strings only, since that's what seems to manifest itself in the
838         tests.
839
840 2005-10-05  Chris Toshok  <toshok@ximian.com>
841
842         * ConfigurationLockCollection.cs: add NIE'd AttributeList
843         property.
844
845         * ConfigurationConverterBase.cs: add MonoTODO'd CanConvertFrom and
846         CanConvertTo methods.
847
848         * ConfigurationSectionGroup.cs: add NIE'd IsDeclared property.
849
850         * ProtectedConfigurationSection.cs: add NIE'd properties.
851
852         * ConfigurationElementCollection.cs: add MonoTODO'd IsReadOnly
853         and SetReadOnly methods, and have then chain up to the base class.
854
855         * KeyValueConfigurationCollection.cs: add the class level
856         ConfigurationCollectionAttribute, and add a NIE'ed Properties
857         property.
858
859         * ProviderSettingsCollection.cs: add the class level
860         ConfigurationCollectionAttribute, and add a "new" keyword to the
861         this property.  Also, nuke the Provider's property.
862
863         * SectionInformation.cs: add some NEI'd properties.
864
865         * ConfigurationSection.cs (ResetModified): leave the MonoTODO, but
866         chain up to base class's method instead of throwing NIE.
867
868         * ConnectionStringSettingsCollection.cs: add the class-level
869         ConfigurationCollectionAttribute, and add the unimplemented
870         Properties property.
871
872         * ConfigurationErrorsException.cs: flesh this out, and add a
873         pragma to disable the obsolete warnings from our base class.
874
875         * ProviderSettings.cs: add unimplemented Properties property.
876
877         * ConfigurationElement.cs: remove unnecessary
878         EvaluationInformation.
879
880         * InternalConfigurationRoot.cs: add unimplemented IsDesignTime
881         property.
882
883         * ConfigurationProperty.cs: add a missing ctor.
884
885         * AppSettingsSection.cs: add missing "override" keyword.
886
887         * ConnectionStringsSection.cs: remove override.
888         
889         * ConfigurationSectionCollection.cs: AllKeys -> Keys, and add
890         unimplemented GetObjectData override.
891
892         * ConfigurationSectionGroupCollection.cs: same.
893
894         * ConfigurationCollectionAttribute.cs: add missing CollectionType
895         property.
896
897 2005-10-05  Chris Toshok  <toshok@ximian.com>
898
899         * ConfigurationPermission.cs: new implementation.
900
901         * IgnoreSection.cs: new implementation.
902
903 2005-10-05  Chris Toshok  <toshok@ximian.com>
904
905         * CommaDelimitedStringCollection.cs: new implementation.
906
907 2005-10-05  Chris Toshok  <toshok@ximian.com>
908
909         * NameValueConfigurationCollection.cs: new implementation.
910
911         * NameValueConfigurationElement.cs: new implementation.
912
913 2005-10-05  Chris Toshok  <toshok@ximian.com>
914
915         * ValidatorCallback.cs: new implementation.
916
917         * SubclassTypeValidator.cs, SubclassTypeValidatorAttribute.cs: new
918         implementation.
919
920         * CallbackValidator.cs, CallbackValidatorAttribute.cs: new
921         implementation.
922
923         * RegexStringValidator.cs, RegexStringValidatorAttribute.cs: new
924         implementation.
925
926         * LongValidator.cs, LongValidatorAttribute.cs: new implementation.
927
928         * IntegerValidator.cs, IntegerValidatorAttribute.cs: new
929         implementation.
930
931         * DefaultValidator.cs: new implementation.
932
933 2005-09-28  Chris Toshok  <toshok@ximian.com>
934
935         * ConfigurationElementCollection.cs: more work on the "<clear />"
936         handling - just skip the element for now.  this causes a failure
937         in one test ('<clear hi="bye" />' doesn't throw an exception when
938         it should), but it succeeds for collections that have required
939         attributes.
940
941         * ConnectionStringSettings.cs: providerName isn't a required
942         attribute.
943
944         * AppSettingsSection.cs (.cctor): initialize our "file" Property.
945         (File): implement.
946         (Properties): fix.
947         (GetRuntimeObject): call the base class method instead of just
948         returning "this".
949
950         * ConnectionStringsSection.cs: Add a hacky DeserializeElement
951         method here (that isn't in MS's) for the time being so we actually
952         deserialize our collection.
953
954 2005-09-28  Chris Toshok  <toshok@ximian.com>
955
956         * KeyValueInternalCollection.cs: found this by way of a stack
957         trace in one of the tests.  A NameValueCollection that wraps a
958         KeyValueConfigurationCollection.
959
960         * Configuration.cs (Init): save off configPath.
961         (EvaluationContext): new, mostly implemented.
962         (GetSectionInstance): use IgnoreSection instead of
963         RuntimeOnlySection.
964         (Load): don't fail when we can't load a file.
965
966         * IgnoreSection.cs: replace RuntimeOnlySection with this new
967         public type.
968
969         * RuntimeOnlySection.cs: nuke.
970         
971 2005-09-27  Chris Toshok  <toshok@ximian.com>
972
973         * TimeSpanMinutesOrInfiniteConverter.cs: this is sealed.
974
975 2005-09-27  Chris Toshok  <toshok@ximian.com>
976
977         * ConfigurationProperty.cs: add IsDefaultCollection property.
978
979 2005-09-27  Chris Toshok  <toshok@ximian.com>
980
981         * ConfigurationElementProperty.cs: new file.
982
983         * ConfigurationLockCollection.cs: new file.
984
985         * ConfigurationElementCollection.cs
986         (OnDeserializeUnrecognizedElement): make sure we consume the
987         <clear /> element so we don't into an endless loop.
988
989         * ConfigurationElement.cs: add a bunch of NIE's properties.
990
991         * ContextInformation.cs: Add NIE'ed IsMachineLevel property.
992
993 2005-09-23  Chris Toshok  <toshok@ximian.com>
994
995         * AppSettingsSection.cs: fix build and add a couple of TODO'ed
996         properties.
997
998 2005-09-23  Chris Toshok  <toshok@ximian.com>
999
1000         * ProviderSettings.cs (Unmerge): track change to
1001         ConfigurationElement.Unmerge.
1002
1003         * ConfigurationSection.cs: add functions nuked from
1004         ConfigurationElement here.
1005
1006         * ConfigurationElementCollection.cs: add DebuggerDisplay attribute
1007         to the class.
1008         (BaseGetAllKeys): returns object[], not string[].
1009         (BaseGetKey): returns object, not string.
1010         (Unmerge): track change to ConfigurationElement.Unmerge signature.
1011
1012         * ConfigurationElement.cs (ConfigurationElement.Unmerge): fix
1013         signature (drop the serializeCollectionKey parameter).
1014         
1015
1016 2005-09-23  Chris Toshok  <toshok@ximian.com>
1017
1018         * StringValidator.cs: throw ArgumentException instead of
1019         ConfigurationErrorsException.
1020
1021 2005-09-23  Chris Toshok  <toshok@ximian.com>
1022
1023         * ConnectionStringsSection.cs: track change to
1024         ConfigurationPropertyOptions.
1025
1026         * ConfigurationPropertyAttribute.cs, ConfigurationProperty.cs,
1027         ProviderSettings.cs: track change to ConfigurationPropertyOptions.
1028
1029         * ConnectionStringSettings.cs: track change to
1030         ConfigurationProprertyOptions, and add some ConfigurationProperty
1031         attributes.
1032         
1033         * ConfigurationPropertyOptions.cs: DefaultCollection ->
1034         IsDefaultCollection, Required -> IsRequired.
1035
1036 2005-09-22  Chris Toshok  <toshok@ximian.com>
1037
1038         * PositiveTimeSpanValidator.cs: this lives in
1039         System.Web.Configuration, not System.Configuration.
1040
1041 2005-09-22  Chris Toshok  <toshok@ximian.com>
1042
1043         * TimeSpanValidator.cs: change to ArgumentException and alter the
1044         messages slightly.
1045
1046 2005-09-22  Chris Toshok  <toshok@ximian.com>
1047
1048         * ExeConfigurationFileMap.cs (ctor): init all the strings to "".
1049
1050 2005-07-01  Lluis Sanchez Gual  <lluis@novell.com>
1051
1052         * ProviderSettings.cs: Implemented properties using property attributes.
1053         * ConfigurationElement.cs: Implemented ElementInformation property and
1054         moved there all value management.
1055         * ProtectedConfigurationProvider.cs: Set the correct base class.
1056         * SectionInformation.cs: Added missing AllowExeDefinition property.
1057         * TimeSpanValidatorAttribute.cs: Implemented.
1058         * StringValidator.cs: Implemented.
1059         * ProviderSettingsCollection.cs: Added missing class attribute.
1060         * ConfigurationSaveMode.cs: Fix enum values.
1061         * ConfigurationElementCollection.cs: Added Init method for initializing
1062         elements from properties.
1063         * StringValidatorAttribute.cs: Implemented.
1064         * ConfigurationLocation.cs: Added support for allowOverride flag.
1065         * TimeSpanMinutesOrInfiniteConverter.cs: Created skeleton class.
1066         * PositiveTimeSpanValidator.cs: Implemented.
1067         * TimeSpanMinutesConverter.cs: Created skeleton class.
1068         * SectionInfo.cs: Properly read, store and check the values of AllowLocation,
1069         AllowDefinition and AllowExeDefinition.
1070         * TimeSpanValidator.cs: Implemented.
1071         * ConfigurationConverterBase.cs: Created skeleton class.
1072         * InternalConfigurationHost.cs: Implemented IsDefinitionAllowed and
1073         VerifyDefinitionAllowed.
1074         * ConfigurationManager.cs: That class must be static.
1075         * PropertyInformationCollection.cs: Implemented.
1076         * Configuration.cs: Added some checks for AllowLocation, AllowDefinition and
1077         so on. In Save(), don't forget to save location elements.
1078         * ConfigurationProperty.cs: Keep track of collection attributes.
1079         * ConfigInfo.cs: Support overrideAllowed flag.
1080         * KeyValueConfigurationElement.cs: Define properties using attributes.
1081         * PropertyValueOrigin.cs: implemented.
1082         * PropertyInformation.cs: Mostly implemented.
1083         * SectionGroupInfo.cs: Properly propagate the overrideAllowed flag.
1084         * ElementInformation.cs: Mostly implemented.
1085         * ConfigurationPropertyAttribute.cs: Set the correct default value.
1086         * ConfigurationCollectionAttribute.cs: Implemented.
1087
1088 2005-06-23  Lluis Sanchez Gual <lluis@novell.com>
1089
1090         * SectionInfo.cs: Set the config host when loading the section.
1091         * InternalConfigurationHost.cs: Implemented some basic methods.
1092         * Configuration.cs: Find the correct parent for the configuration,
1093         taking into accound locations and such. Use Host functions to get
1094         types from names.
1095         * ConfigurationLocationCollection.cs: Added find method.
1096         * ConfigInfo.cs: Added Host property.
1097         * InternalConfigurationFactory.cs: The InitForConfiguration calls
1098         are now done in each correspoding configuration.
1099         * SectionGroupInfo.cs: When reading a location element, create
1100         a Configuration object for each path specified in the location.
1101         * ConfigurationElementCollection.cs: Added the CreateNewElementInternal
1102         method, which properly initializes the created element.
1103         * ConfigurationLocation.cs: OpenConfiguration now has to read the
1104         xml contents. It also has to find the correct parent configuration,
1105         if it has not been specified.
1106
1107 2005-06-17  Lluis Sanchez Gual <lluis@novell.com>
1108
1109         * SectionInfo.cs, ConfigInfo.cs, SectionGroupInfo.cs: Minor api fixes.
1110         * ConfigurationPropertyCollection.cs: Added Clear method.
1111         * ContextInformation.cs: Implemented.
1112         * ConfigurationManager.cs: Implemented some missing methods.
1113         Configuration objects are now created through the ConfigurationFactory.
1114         * InternalConfigurationHost.cs: Implementation of IInternalConfigHost
1115         to be used for exe files and machine.config.
1116         * ConfigurationFileMap.cs: Implemented.
1117         * Configuration.cs: Read and write config files using the methods that
1118           IInternalConfigHost provides.
1119         * InternalConfigurationRoot.cs: IInternalConfigRoot stub.
1120         * ExeContext.cs: Implemented.
1121         * AppSettingsSection.cs: Use the KeyValueConfigurationCollection
1122         collection to store values.
1123         * KeyValueConfigurationElement.cs: Implemented.
1124         * KeyValueConfigurationCollection.cs: Implemented.
1125         * InternalConfigurationFactory.cs: An implementation of 
1126         IInternalConfigConfigurationFactory.
1127         * ConfigurationPropertyAttribute.cs: Added missing attributes.
1128         * ExeConfigurationFileMap.cs: Implemented.
1129
1130 2005-06-15  Lluis Sanchez Gual <lluis@novell.com>
1131
1132         * ConfigurationElement.cs, ConfigurationErrorsException.cs
1133         SectionInfo.cs, ConnectionStringSettingsCollection.cs,
1134         ConfigurationPropertyCollection.cs, ProtectedConfigurationProvider.cs,
1135         ConfigurationSection.cs, NonEmptyStringConfigurationProperty.cs,
1136         ConfigurationElementCollectionType.cs, Configuration.cs, 
1137         ConnectionStringSettings.cs, ConfigurationProperty.cs,
1138         ConfigurationLocationCollection.cs, TimeSpanConfigurationProperty.cs,
1139         ConfigurationAllowDefinition.cs, ConfigInfo.cs,
1140         ConfigurationSectionGroupCollection.cs, AppSettingsSection.cs,
1141         ProviderSettingsCollection.cs, IntegerConfigurationProperty.cs,
1142         SectionGroupInfo.cs, ConfigurationUserLevel.cs,
1143         ConnectionStringsSection.cs, ConfigurationPropertyAttribute.cs,
1144         ConfigurationLocation.cs, ConfigurationSectionCollection.cs,
1145         ConfigurationSectionGroup.cs, RuntimeOnlySection.cs,
1146         ProviderSettings.cs: 
1147                 Track API changes.
1148         
1149         * ConfigurationElementCollection.cs: Implemented support for Basic
1150         collection type. Other fixes.
1151         
1152         * ConfigurationPropertyFlags.cs: Renamed to ConfigurationPropertyOptions.
1153         * ConfigurationUpdateMode.cs: Renamed to ConfigurationSaveMode.
1154         
1155         * SectionInformation.cs, ConfigurationAllowExeDefinition.cs
1156         ConfigurationManager.cs, ConfigurationSaveMode.cs,
1157         ConfigurationValidatorAttribute.cs, ProtectedConfigurationSection.cs,
1158         ConfigurationValidatorBase.cs, ConfigurationPropertyOptions.cs:
1159                 New files.
1160         
1161         * ConfigurationValidationAttribute.cs: Removed.
1162         
1163         * ProviderBase.cs: Moved to System.dll.
1164
1165 2005-06-14  Lluis Sanchez Gual <lluis@novell.com>
1166
1167         * AppSettingsSection.cs, ConfigInfo.cs, Configuration.cs
1168         ConfigurationAllowDefinition.cs, ConfigurationElement.cs
1169         ConfigurationElementCollection.cs, ConfigurationElementCollectionType.cs
1170         ConfigurationLocation.cs, ConfigurationLocationCollection.cs
1171         ConfigurationProperty.cs, ConfigurationPropertyAttribute.cs
1172         ConfigurationPropertyCollection.cs, ConfigurationPropertyFlags.cs
1173         ConfigurationSection.cs, ConfigurationSectionCollection.cs
1174         ConfigurationSectionGroup.cs, ConfigurationSectionGroupCollection.cs
1175         ConfigurationUpdateMode.cs, ConfigurationUserLevel.cs
1176         ConfigurationValidationAttribute.cs, ConnectionStringsSection.cs
1177         ConnectionStringSettingsCollection.cs, ConnectionStringSettings.cs
1178         IntegerConfigurationProperty.cs, NonEmptyStringConfigurationProperty.cs
1179         NonEmptyStringFlags.cs, PathLevel.cs, ProtectedConfigurationProvider.cs
1180         ProviderBase.cs, ProviderSettings.cs, ProviderSettingsCollection.cs
1181         RuntimeOnlySection.cs, SectionInfo.cs, SectionGroupInfo.cs
1182         TimeSpanConfigurationProperty.cs, TimeSpanPropertyFlags.cs
1183         TimeSpanSerializedFormat.cs:
1184
1185         Moved from the System assembly.