DictionaryGlobals.cs 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  1. //-----------------------------------------------------------------------------
  2. // Copyright (c) Microsoft Corporation. All rights reserved.
  3. //-----------------------------------------------------------------------------
  4. namespace System.Runtime.Serialization
  5. {
  6. using System;
  7. using System.Xml;
  8. [Fx.Tag.SecurityNote(Miscellaneous = "RequiresReview - Static fields are marked SecurityCritical or readonly to prevent"
  9. + " data from being modified or leaked to other components in appdomain."
  10. + " Changes to static fields could affect serialization/deserialization; should be reviewed.")]
  11. #if USE_REFEMIT
  12. public static class DictionaryGlobals
  13. #else
  14. internal static class DictionaryGlobals
  15. #endif
  16. {
  17. public readonly static XmlDictionaryString EmptyString;
  18. public readonly static XmlDictionaryString SchemaInstanceNamespace;
  19. public readonly static XmlDictionaryString SchemaNamespace;
  20. public readonly static XmlDictionaryString SerializationNamespace;
  21. public readonly static XmlDictionaryString XmlnsNamespace;
  22. public readonly static XmlDictionaryString XsiTypeLocalName;
  23. public readonly static XmlDictionaryString XsiNilLocalName;
  24. public readonly static XmlDictionaryString ClrTypeLocalName;
  25. public readonly static XmlDictionaryString ClrAssemblyLocalName;
  26. public readonly static XmlDictionaryString ArraySizeLocalName;
  27. public readonly static XmlDictionaryString IdLocalName;
  28. public readonly static XmlDictionaryString RefLocalName;
  29. public readonly static XmlDictionaryString ISerializableFactoryTypeLocalName;
  30. public readonly static XmlDictionaryString CharLocalName;
  31. public readonly static XmlDictionaryString BooleanLocalName;
  32. public readonly static XmlDictionaryString SignedByteLocalName;
  33. public readonly static XmlDictionaryString UnsignedByteLocalName;
  34. public readonly static XmlDictionaryString ShortLocalName;
  35. public readonly static XmlDictionaryString UnsignedShortLocalName;
  36. public readonly static XmlDictionaryString IntLocalName;
  37. public readonly static XmlDictionaryString UnsignedIntLocalName;
  38. public readonly static XmlDictionaryString LongLocalName;
  39. public readonly static XmlDictionaryString UnsignedLongLocalName;
  40. public readonly static XmlDictionaryString FloatLocalName;
  41. public readonly static XmlDictionaryString DoubleLocalName;
  42. public readonly static XmlDictionaryString DecimalLocalName;
  43. public readonly static XmlDictionaryString DateTimeLocalName;
  44. public readonly static XmlDictionaryString StringLocalName;
  45. public readonly static XmlDictionaryString ByteArrayLocalName;
  46. public readonly static XmlDictionaryString ObjectLocalName;
  47. public readonly static XmlDictionaryString TimeSpanLocalName;
  48. public readonly static XmlDictionaryString GuidLocalName;
  49. public readonly static XmlDictionaryString UriLocalName;
  50. public readonly static XmlDictionaryString QNameLocalName;
  51. public readonly static XmlDictionaryString Space;
  52. public readonly static XmlDictionaryString timeLocalName;
  53. public readonly static XmlDictionaryString dateLocalName;
  54. public readonly static XmlDictionaryString hexBinaryLocalName;
  55. public readonly static XmlDictionaryString gYearMonthLocalName;
  56. public readonly static XmlDictionaryString gYearLocalName;
  57. public readonly static XmlDictionaryString gMonthDayLocalName;
  58. public readonly static XmlDictionaryString gDayLocalName;
  59. public readonly static XmlDictionaryString gMonthLocalName;
  60. public readonly static XmlDictionaryString integerLocalName;
  61. public readonly static XmlDictionaryString positiveIntegerLocalName;
  62. public readonly static XmlDictionaryString negativeIntegerLocalName;
  63. public readonly static XmlDictionaryString nonPositiveIntegerLocalName;
  64. public readonly static XmlDictionaryString nonNegativeIntegerLocalName;
  65. public readonly static XmlDictionaryString normalizedStringLocalName;
  66. public readonly static XmlDictionaryString tokenLocalName;
  67. public readonly static XmlDictionaryString languageLocalName;
  68. public readonly static XmlDictionaryString NameLocalName;
  69. public readonly static XmlDictionaryString NCNameLocalName;
  70. public readonly static XmlDictionaryString XSDIDLocalName;
  71. public readonly static XmlDictionaryString IDREFLocalName;
  72. public readonly static XmlDictionaryString IDREFSLocalName;
  73. public readonly static XmlDictionaryString ENTITYLocalName;
  74. public readonly static XmlDictionaryString ENTITIESLocalName;
  75. public readonly static XmlDictionaryString NMTOKENLocalName;
  76. public readonly static XmlDictionaryString NMTOKENSLocalName;
  77. public readonly static XmlDictionaryString AsmxTypesNamespace;
  78. static DictionaryGlobals()
  79. {
  80. // Update array size when adding new strings or templates
  81. XmlDictionary dictionary = new XmlDictionary(61);
  82. try
  83. {
  84. // 0
  85. SchemaInstanceNamespace = dictionary.Add(Globals.SchemaInstanceNamespace);
  86. SerializationNamespace = dictionary.Add(Globals.SerializationNamespace);
  87. SchemaNamespace = dictionary.Add(Globals.SchemaNamespace);
  88. XsiTypeLocalName = dictionary.Add(Globals.XsiTypeLocalName);
  89. XsiNilLocalName = dictionary.Add(Globals.XsiNilLocalName);
  90. // 5
  91. IdLocalName = dictionary.Add(Globals.IdLocalName);
  92. RefLocalName = dictionary.Add(Globals.RefLocalName);
  93. ArraySizeLocalName = dictionary.Add(Globals.ArraySizeLocalName);
  94. EmptyString = dictionary.Add(String.Empty);
  95. ISerializableFactoryTypeLocalName = dictionary.Add(Globals.ISerializableFactoryTypeLocalName);
  96. // 10
  97. XmlnsNamespace = dictionary.Add(Globals.XmlnsNamespace);
  98. CharLocalName = dictionary.Add("char");
  99. BooleanLocalName = dictionary.Add("boolean");
  100. SignedByteLocalName = dictionary.Add("byte");
  101. UnsignedByteLocalName = dictionary.Add("unsignedByte");
  102. // 15
  103. ShortLocalName = dictionary.Add("short");
  104. UnsignedShortLocalName = dictionary.Add("unsignedShort");
  105. IntLocalName = dictionary.Add("int");
  106. UnsignedIntLocalName = dictionary.Add("unsignedInt");
  107. LongLocalName = dictionary.Add("long");
  108. // 20
  109. UnsignedLongLocalName = dictionary.Add("unsignedLong");
  110. FloatLocalName = dictionary.Add("float");
  111. DoubleLocalName = dictionary.Add("double");
  112. DecimalLocalName = dictionary.Add("decimal");
  113. DateTimeLocalName = dictionary.Add("dateTime");
  114. // 25
  115. StringLocalName = dictionary.Add("string");
  116. ByteArrayLocalName = dictionary.Add("base64Binary");
  117. ObjectLocalName = dictionary.Add("anyType");
  118. TimeSpanLocalName = dictionary.Add("duration");
  119. GuidLocalName = dictionary.Add("guid");
  120. // 30
  121. UriLocalName = dictionary.Add("anyURI");
  122. QNameLocalName = dictionary.Add("QName");
  123. ClrTypeLocalName = dictionary.Add(Globals.ClrTypeLocalName);
  124. ClrAssemblyLocalName = dictionary.Add(Globals.ClrAssemblyLocalName);
  125. Space = dictionary.Add(Globals.Space);
  126. // 35
  127. timeLocalName = dictionary.Add("time");
  128. dateLocalName = dictionary.Add("date");
  129. hexBinaryLocalName = dictionary.Add("hexBinary");
  130. gYearMonthLocalName = dictionary.Add("gYearMonth");
  131. gYearLocalName = dictionary.Add("gYear");
  132. // 40
  133. gMonthDayLocalName = dictionary.Add("gMonthDay");
  134. gDayLocalName = dictionary.Add("gDay");
  135. gMonthLocalName = dictionary.Add("gMonth");
  136. integerLocalName = dictionary.Add("integer");
  137. positiveIntegerLocalName = dictionary.Add("positiveInteger");
  138. // 45
  139. negativeIntegerLocalName = dictionary.Add("negativeInteger");
  140. nonPositiveIntegerLocalName = dictionary.Add("nonPositiveInteger");
  141. nonNegativeIntegerLocalName = dictionary.Add("nonNegativeInteger");
  142. normalizedStringLocalName = dictionary.Add("normalizedString");
  143. tokenLocalName = dictionary.Add("token");
  144. // 50
  145. languageLocalName = dictionary.Add("language");
  146. NameLocalName = dictionary.Add("Name");
  147. NCNameLocalName = dictionary.Add("NCName");
  148. XSDIDLocalName = dictionary.Add("ID");
  149. IDREFLocalName = dictionary.Add("IDREF");
  150. // 55
  151. IDREFSLocalName = dictionary.Add("IDREFS");
  152. ENTITYLocalName = dictionary.Add("ENTITY");
  153. ENTITIESLocalName = dictionary.Add("ENTITIES");
  154. NMTOKENLocalName = dictionary.Add("NMTOKEN");
  155. NMTOKENSLocalName = dictionary.Add("NMTOKENS");
  156. // 60
  157. AsmxTypesNamespace = dictionary.Add("http://microsoft.com/wsdl/types/");
  158. // Add new templates here
  159. }
  160. catch (Exception ex)
  161. {
  162. if (Fx.IsFatal(ex))
  163. {
  164. throw;
  165. }
  166. throw DiagnosticUtility.ExceptionUtility.ThrowHelperFatal(ex.Message, ex);
  167. }
  168. }
  169. }
  170. }