027acb3984875a7ce107558cc947da23208c3b5e
[mono.git] / mcs / class / referencesource / System.Xml / System / Xml / Serialization / Configuration / DateTimeSerializationSection.cs
1 //------------------------------------------------------------------------------
2 // <copyright file="DateTimeSerializationSection.cs" company="Microsoft Corporation">
3 //     Copyright (c) Microsoft Corporation.  All rights reserved.
4 // </copyright>
5 // <owner current="true" primary="true">[....]</owner>                                                                
6 //------------------------------------------------------------------------------
7
8 namespace System.Xml.Serialization.Configuration
9 {
10     using System;
11     using System.Configuration;
12     using System.ComponentModel;
13     using System.Globalization;
14     using System.Reflection;
15
16     public sealed class DateTimeSerializationSection : ConfigurationSection
17     {
18         public enum DateTimeSerializationMode
19         {
20             Default = 0,
21             Roundtrip = 1,
22             Local = 2,
23         }
24
25         public DateTimeSerializationSection()
26         {
27             this.properties.Add(this.mode);
28         }
29
30         protected override ConfigurationPropertyCollection Properties 
31         {
32             get 
33             {
34                 return this.properties;
35             }
36         }
37
38         [ConfigurationProperty(ConfigurationStrings.Mode, DefaultValue=DateTimeSerializationMode.Roundtrip)]
39         public DateTimeSerializationMode Mode
40         {
41             get { return (DateTimeSerializationMode) this[this.mode]; }
42             set { this[this.mode] = value; }
43         }
44
45         ConfigurationPropertyCollection properties = new ConfigurationPropertyCollection();
46
47         // Supply a type converter, even though it's a plain type converter, to get around ConfigurationProperty's internal
48         // Enum conversion routine.  The internal one is case-sensitive, we want this to be case-insensitive.
49         readonly ConfigurationProperty mode =
50             new ConfigurationProperty(ConfigurationStrings.Mode, typeof(DateTimeSerializationMode), DateTimeSerializationMode.Roundtrip,
51                     new EnumConverter(typeof(DateTimeSerializationMode)), null, ConfigurationPropertyOptions.None);
52
53     }
54
55 }
56