DateTimeSerializationSection.cs 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  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">Microsoft</owner>
  6. //------------------------------------------------------------------------------
  7. #if CONFIGURATION_DEP
  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. public sealed class DateTimeSerializationSection : ConfigurationSection
  16. {
  17. public enum DateTimeSerializationMode
  18. {
  19. Default = 0,
  20. Roundtrip = 1,
  21. Local = 2,
  22. }
  23. public DateTimeSerializationSection()
  24. {
  25. this.properties.Add(this.mode);
  26. }
  27. protected override ConfigurationPropertyCollection Properties
  28. {
  29. get
  30. {
  31. return this.properties;
  32. }
  33. }
  34. [ConfigurationProperty(ConfigurationStrings.Mode, DefaultValue=DateTimeSerializationMode.Roundtrip)]
  35. public DateTimeSerializationMode Mode
  36. {
  37. get { return (DateTimeSerializationMode) this[this.mode]; }
  38. set { this[this.mode] = value; }
  39. }
  40. ConfigurationPropertyCollection properties = new ConfigurationPropertyCollection();
  41. // Supply a type converter, even though it's a plain type converter, to get around ConfigurationProperty's internal
  42. // Enum conversion routine. The internal one is case-sensitive, we want this to be case-insensitive.
  43. readonly ConfigurationProperty mode =
  44. new ConfigurationProperty(ConfigurationStrings.Mode, typeof(DateTimeSerializationMode), DateTimeSerializationMode.Roundtrip,
  45. new EnumConverter(typeof(DateTimeSerializationMode)), null, ConfigurationPropertyOptions.None);
  46. }
  47. }
  48. #endif