XmlFormatGeneratorStatics.cs 41 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064
  1. //-----------------------------------------------------------------------------
  2. // Copyright (c) Microsoft Corporation. All rights reserved.
  3. //-----------------------------------------------------------------------------
  4. namespace System.Runtime.Serialization
  5. {
  6. using System;
  7. using System.Collections;
  8. using System.Reflection;
  9. using System.Security;
  10. using System.Xml;
  11. [Fx.Tag.SecurityNote(Critical = "Class holds static instances used for code generation during serialization."
  12. + " Static fields are marked SecurityCritical or readonly to prevent data from being modified or leaked to other components in appdomain.",
  13. Safe = "All get-only properties marked safe since they only need to be protected for write.")]
  14. static class XmlFormatGeneratorStatics
  15. {
  16. [SecurityCritical]
  17. static MethodInfo writeStartElementMethod2;
  18. internal static MethodInfo WriteStartElementMethod2
  19. {
  20. [SecuritySafeCritical]
  21. get
  22. {
  23. if (writeStartElementMethod2 == null)
  24. writeStartElementMethod2 = typeof(XmlWriterDelegator).GetMethod("WriteStartElement", Globals.ScanAllMembers, null, new Type[] { typeof(XmlDictionaryString), typeof(XmlDictionaryString) }, null);
  25. return writeStartElementMethod2;
  26. }
  27. }
  28. [SecurityCritical]
  29. static MethodInfo writeStartElementMethod3;
  30. internal static MethodInfo WriteStartElementMethod3
  31. {
  32. [SecuritySafeCritical]
  33. get
  34. {
  35. if (writeStartElementMethod3 == null)
  36. writeStartElementMethod3 = typeof(XmlWriterDelegator).GetMethod("WriteStartElement", Globals.ScanAllMembers, null, new Type[] { typeof(string), typeof(XmlDictionaryString), typeof(XmlDictionaryString) }, null);
  37. return writeStartElementMethod3;
  38. }
  39. }
  40. [SecurityCritical]
  41. static MethodInfo writeEndElementMethod;
  42. internal static MethodInfo WriteEndElementMethod
  43. {
  44. [SecuritySafeCritical]
  45. get
  46. {
  47. if (writeEndElementMethod == null)
  48. writeEndElementMethod = typeof(XmlWriterDelegator).GetMethod("WriteEndElement", Globals.ScanAllMembers, null, new Type[] { }, null);
  49. return writeEndElementMethod;
  50. }
  51. }
  52. [SecurityCritical]
  53. static MethodInfo writeNamespaceDeclMethod;
  54. internal static MethodInfo WriteNamespaceDeclMethod
  55. {
  56. [SecuritySafeCritical]
  57. get
  58. {
  59. if (writeNamespaceDeclMethod == null)
  60. writeNamespaceDeclMethod = typeof(XmlWriterDelegator).GetMethod("WriteNamespaceDecl", Globals.ScanAllMembers, null, new Type[] { typeof(XmlDictionaryString) }, null);
  61. return writeNamespaceDeclMethod;
  62. }
  63. }
  64. [SecurityCritical]
  65. static PropertyInfo extensionDataProperty;
  66. internal static PropertyInfo ExtensionDataProperty
  67. {
  68. [SecuritySafeCritical]
  69. get
  70. {
  71. if (extensionDataProperty == null)
  72. extensionDataProperty = typeof(IExtensibleDataObject).GetProperty("ExtensionData");
  73. return extensionDataProperty;
  74. }
  75. }
  76. [SecurityCritical]
  77. static MethodInfo boxPointer;
  78. internal static MethodInfo BoxPointer
  79. {
  80. [SecuritySafeCritical]
  81. get
  82. {
  83. if (boxPointer == null)
  84. boxPointer = typeof(Pointer).GetMethod("Box");
  85. return boxPointer;
  86. }
  87. }
  88. [SecurityCritical]
  89. static ConstructorInfo dictionaryEnumeratorCtor;
  90. internal static ConstructorInfo DictionaryEnumeratorCtor
  91. {
  92. [SecuritySafeCritical]
  93. get
  94. {
  95. if (dictionaryEnumeratorCtor == null)
  96. dictionaryEnumeratorCtor = Globals.TypeOfDictionaryEnumerator.GetConstructor(Globals.ScanAllMembers, null, new Type[] { Globals.TypeOfIDictionaryEnumerator }, null);
  97. return dictionaryEnumeratorCtor;
  98. }
  99. }
  100. [SecurityCritical]
  101. static MethodInfo ienumeratorMoveNextMethod;
  102. internal static MethodInfo MoveNextMethod
  103. {
  104. [SecuritySafeCritical]
  105. get
  106. {
  107. if (ienumeratorMoveNextMethod == null)
  108. ienumeratorMoveNextMethod = typeof(IEnumerator).GetMethod("MoveNext");
  109. return ienumeratorMoveNextMethod;
  110. }
  111. }
  112. [SecurityCritical]
  113. static MethodInfo ienumeratorGetCurrentMethod;
  114. internal static MethodInfo GetCurrentMethod
  115. {
  116. [SecuritySafeCritical]
  117. get
  118. {
  119. if (ienumeratorGetCurrentMethod == null)
  120. ienumeratorGetCurrentMethod = typeof(IEnumerator).GetProperty("Current").GetGetMethod();
  121. return ienumeratorGetCurrentMethod;
  122. }
  123. }
  124. [SecurityCritical]
  125. static MethodInfo getItemContractMethod;
  126. internal static MethodInfo GetItemContractMethod
  127. {
  128. [SecuritySafeCritical]
  129. get
  130. {
  131. if (getItemContractMethod == null)
  132. getItemContractMethod = typeof(CollectionDataContract).GetProperty("ItemContract", Globals.ScanAllMembers).GetGetMethod(true/*nonPublic*/);
  133. return getItemContractMethod;
  134. }
  135. }
  136. [SecurityCritical]
  137. static MethodInfo isStartElementMethod2;
  138. internal static MethodInfo IsStartElementMethod2
  139. {
  140. [SecuritySafeCritical]
  141. get
  142. {
  143. if (isStartElementMethod2 == null)
  144. isStartElementMethod2 = typeof(XmlReaderDelegator).GetMethod("IsStartElement", Globals.ScanAllMembers, null, new Type[] { typeof(XmlDictionaryString), typeof(XmlDictionaryString) }, null);
  145. return isStartElementMethod2;
  146. }
  147. }
  148. [SecurityCritical]
  149. static MethodInfo isStartElementMethod0;
  150. internal static MethodInfo IsStartElementMethod0
  151. {
  152. [SecuritySafeCritical]
  153. get
  154. {
  155. if (isStartElementMethod0 == null)
  156. isStartElementMethod0 = typeof(XmlReaderDelegator).GetMethod("IsStartElement", Globals.ScanAllMembers, null, new Type[] { }, null);
  157. return isStartElementMethod0;
  158. }
  159. }
  160. [SecurityCritical]
  161. static MethodInfo getUninitializedObjectMethod;
  162. internal static MethodInfo GetUninitializedObjectMethod
  163. {
  164. [SecuritySafeCritical]
  165. get
  166. {
  167. if (getUninitializedObjectMethod == null)
  168. getUninitializedObjectMethod = typeof(XmlFormatReaderGenerator).GetMethod("UnsafeGetUninitializedObject", Globals.ScanAllMembers, null, new Type[] { typeof(int) }, null);
  169. return getUninitializedObjectMethod;
  170. }
  171. }
  172. [SecurityCritical]
  173. static MethodInfo onDeserializationMethod;
  174. internal static MethodInfo OnDeserializationMethod
  175. {
  176. [SecuritySafeCritical]
  177. get
  178. {
  179. if (onDeserializationMethod == null)
  180. onDeserializationMethod = typeof(IDeserializationCallback).GetMethod("OnDeserialization");
  181. return onDeserializationMethod;
  182. }
  183. }
  184. [SecurityCritical]
  185. static MethodInfo unboxPointer;
  186. internal static MethodInfo UnboxPointer
  187. {
  188. [SecuritySafeCritical]
  189. get
  190. {
  191. if (unboxPointer == null)
  192. unboxPointer = typeof(Pointer).GetMethod("Unbox");
  193. return unboxPointer;
  194. }
  195. }
  196. [SecurityCritical]
  197. static PropertyInfo nodeTypeProperty;
  198. internal static PropertyInfo NodeTypeProperty
  199. {
  200. [SecuritySafeCritical]
  201. get
  202. {
  203. if (nodeTypeProperty == null)
  204. nodeTypeProperty = typeof(XmlReaderDelegator).GetProperty("NodeType", Globals.ScanAllMembers);
  205. return nodeTypeProperty;
  206. }
  207. }
  208. [SecurityCritical]
  209. static ConstructorInfo serializationExceptionCtor;
  210. internal static ConstructorInfo SerializationExceptionCtor
  211. {
  212. [SecuritySafeCritical]
  213. get
  214. {
  215. if (serializationExceptionCtor == null)
  216. serializationExceptionCtor = typeof(SerializationException).GetConstructor(new Type[] { typeof(string) });
  217. return serializationExceptionCtor;
  218. }
  219. }
  220. [SecurityCritical]
  221. static ConstructorInfo extensionDataObjectCtor;
  222. internal static ConstructorInfo ExtensionDataObjectCtor
  223. {
  224. [SecuritySafeCritical]
  225. get
  226. {
  227. if (extensionDataObjectCtor == null)
  228. extensionDataObjectCtor = typeof(ExtensionDataObject).GetConstructor(Globals.ScanAllMembers, null, new Type[] { }, null);
  229. return extensionDataObjectCtor;
  230. }
  231. }
  232. [SecurityCritical]
  233. static ConstructorInfo hashtableCtor;
  234. internal static ConstructorInfo HashtableCtor
  235. {
  236. [SecuritySafeCritical]
  237. get
  238. {
  239. if (hashtableCtor == null)
  240. hashtableCtor = Globals.TypeOfHashtable.GetConstructor(Globals.ScanAllMembers, null, Globals.EmptyTypeArray, null);
  241. return hashtableCtor;
  242. }
  243. }
  244. [SecurityCritical]
  245. static MethodInfo getStreamingContextMethod;
  246. internal static MethodInfo GetStreamingContextMethod
  247. {
  248. [SecuritySafeCritical]
  249. get
  250. {
  251. if (getStreamingContextMethod == null)
  252. getStreamingContextMethod = typeof(XmlObjectSerializerContext).GetMethod("GetStreamingContext", Globals.ScanAllMembers);
  253. return getStreamingContextMethod;
  254. }
  255. }
  256. [SecurityCritical]
  257. static MethodInfo getCollectionMemberMethod;
  258. internal static MethodInfo GetCollectionMemberMethod
  259. {
  260. [SecuritySafeCritical]
  261. get
  262. {
  263. if (getCollectionMemberMethod == null)
  264. getCollectionMemberMethod = typeof(XmlObjectSerializerReadContext).GetMethod("GetCollectionMember", Globals.ScanAllMembers);
  265. return getCollectionMemberMethod;
  266. }
  267. }
  268. [SecurityCritical]
  269. static MethodInfo storeCollectionMemberInfoMethod;
  270. internal static MethodInfo StoreCollectionMemberInfoMethod
  271. {
  272. [SecuritySafeCritical]
  273. get
  274. {
  275. if (storeCollectionMemberInfoMethod == null)
  276. storeCollectionMemberInfoMethod = typeof(XmlObjectSerializerReadContext).GetMethod("StoreCollectionMemberInfo", Globals.ScanAllMembers, null, new Type[] { typeof(object) }, null);
  277. return storeCollectionMemberInfoMethod;
  278. }
  279. }
  280. [SecurityCritical]
  281. static MethodInfo storeIsGetOnlyCollectionMethod;
  282. internal static MethodInfo StoreIsGetOnlyCollectionMethod
  283. {
  284. [SecuritySafeCritical]
  285. get
  286. {
  287. if (storeIsGetOnlyCollectionMethod == null)
  288. storeIsGetOnlyCollectionMethod = typeof(XmlObjectSerializerWriteContext).GetMethod("StoreIsGetOnlyCollection", Globals.ScanAllMembers);
  289. return storeIsGetOnlyCollectionMethod;
  290. }
  291. }
  292. [SecurityCritical]
  293. static MethodInfo throwNullValueReturnedForGetOnlyCollectionExceptionMethod;
  294. internal static MethodInfo ThrowNullValueReturnedForGetOnlyCollectionExceptionMethod
  295. {
  296. [SecuritySafeCritical]
  297. get
  298. {
  299. if (throwNullValueReturnedForGetOnlyCollectionExceptionMethod == null)
  300. throwNullValueReturnedForGetOnlyCollectionExceptionMethod = typeof(XmlObjectSerializerReadContext).GetMethod("ThrowNullValueReturnedForGetOnlyCollectionException", Globals.ScanAllMembers);
  301. return throwNullValueReturnedForGetOnlyCollectionExceptionMethod;
  302. }
  303. }
  304. static MethodInfo throwArrayExceededSizeExceptionMethod;
  305. internal static MethodInfo ThrowArrayExceededSizeExceptionMethod
  306. {
  307. [SecuritySafeCritical]
  308. get
  309. {
  310. if (throwArrayExceededSizeExceptionMethod == null)
  311. throwArrayExceededSizeExceptionMethod = typeof(XmlObjectSerializerReadContext).GetMethod("ThrowArrayExceededSizeException", Globals.ScanAllMembers);
  312. return throwArrayExceededSizeExceptionMethod;
  313. }
  314. }
  315. [SecurityCritical]
  316. static MethodInfo incrementItemCountMethod;
  317. internal static MethodInfo IncrementItemCountMethod
  318. {
  319. [SecuritySafeCritical]
  320. get
  321. {
  322. if (incrementItemCountMethod == null)
  323. incrementItemCountMethod = typeof(XmlObjectSerializerContext).GetMethod("IncrementItemCount", Globals.ScanAllMembers);
  324. return incrementItemCountMethod;
  325. }
  326. }
  327. [Fx.Tag.SecurityNote(Critical = "Holds instance of SecurityPermission that we will Demand for SerializationFormatter."
  328. + " Should not be modified to something else.")]
  329. [SecurityCritical]
  330. static MethodInfo demandSerializationFormatterPermissionMethod;
  331. internal static MethodInfo DemandSerializationFormatterPermissionMethod
  332. {
  333. [Fx.Tag.SecurityNote(Critical = "Demands SerializationFormatter permission. Demanding the right permission is critical.",
  334. Safe = "No data or control leaks in or out, must be callable from transparent generated IL.")]
  335. [SecuritySafeCritical]
  336. get
  337. {
  338. if (demandSerializationFormatterPermissionMethod == null)
  339. demandSerializationFormatterPermissionMethod = typeof(XmlObjectSerializerContext).GetMethod("DemandSerializationFormatterPermission", Globals.ScanAllMembers);
  340. return demandSerializationFormatterPermissionMethod;
  341. }
  342. }
  343. [Fx.Tag.SecurityNote(Critical = "Holds instance of SecurityPermission that we will Demand for MemberAccess."
  344. + " Should not be modified to something else.")]
  345. [SecurityCritical]
  346. static MethodInfo demandMemberAccessPermissionMethod;
  347. internal static MethodInfo DemandMemberAccessPermissionMethod
  348. {
  349. [Fx.Tag.SecurityNote(Critical = "Demands MemberAccess permission. Demanding the right permission is critical.",
  350. Safe = "No data or control leaks in or out, must be callable from transparent generated IL.")]
  351. [SecuritySafeCritical]
  352. get
  353. {
  354. if (demandMemberAccessPermissionMethod == null)
  355. demandMemberAccessPermissionMethod = typeof(XmlObjectSerializerContext).GetMethod("DemandMemberAccessPermission", Globals.ScanAllMembers);
  356. return demandMemberAccessPermissionMethod;
  357. }
  358. }
  359. [SecurityCritical]
  360. static MethodInfo internalDeserializeMethod;
  361. internal static MethodInfo InternalDeserializeMethod
  362. {
  363. [SecuritySafeCritical]
  364. get
  365. {
  366. if (internalDeserializeMethod == null)
  367. internalDeserializeMethod = typeof(XmlObjectSerializerReadContext).GetMethod("InternalDeserialize", Globals.ScanAllMembers, null, new Type[] { typeof(XmlReaderDelegator), typeof(int), typeof(RuntimeTypeHandle), typeof(string), typeof(string) }, null);
  368. return internalDeserializeMethod;
  369. }
  370. }
  371. [SecurityCritical]
  372. static MethodInfo moveToNextElementMethod;
  373. internal static MethodInfo MoveToNextElementMethod
  374. {
  375. [SecuritySafeCritical]
  376. get
  377. {
  378. if (moveToNextElementMethod == null)
  379. moveToNextElementMethod = typeof(XmlObjectSerializerReadContext).GetMethod("MoveToNextElement", Globals.ScanAllMembers);
  380. return moveToNextElementMethod;
  381. }
  382. }
  383. [SecurityCritical]
  384. static MethodInfo getMemberIndexMethod;
  385. internal static MethodInfo GetMemberIndexMethod
  386. {
  387. [SecuritySafeCritical]
  388. get
  389. {
  390. if (getMemberIndexMethod == null)
  391. getMemberIndexMethod = typeof(XmlObjectSerializerReadContext).GetMethod("GetMemberIndex", Globals.ScanAllMembers);
  392. return getMemberIndexMethod;
  393. }
  394. }
  395. [SecurityCritical]
  396. static MethodInfo getMemberIndexWithRequiredMembersMethod;
  397. internal static MethodInfo GetMemberIndexWithRequiredMembersMethod
  398. {
  399. [SecuritySafeCritical]
  400. get
  401. {
  402. if (getMemberIndexWithRequiredMembersMethod == null)
  403. getMemberIndexWithRequiredMembersMethod = typeof(XmlObjectSerializerReadContext).GetMethod("GetMemberIndexWithRequiredMembers", Globals.ScanAllMembers);
  404. return getMemberIndexWithRequiredMembersMethod;
  405. }
  406. }
  407. [SecurityCritical]
  408. static MethodInfo throwRequiredMemberMissingExceptionMethod;
  409. internal static MethodInfo ThrowRequiredMemberMissingExceptionMethod
  410. {
  411. [SecuritySafeCritical]
  412. get
  413. {
  414. if (throwRequiredMemberMissingExceptionMethod == null)
  415. throwRequiredMemberMissingExceptionMethod = typeof(XmlObjectSerializerReadContext).GetMethod("ThrowRequiredMemberMissingException", Globals.ScanAllMembers);
  416. return throwRequiredMemberMissingExceptionMethod;
  417. }
  418. }
  419. [SecurityCritical]
  420. static MethodInfo skipUnknownElementMethod;
  421. internal static MethodInfo SkipUnknownElementMethod
  422. {
  423. [SecuritySafeCritical]
  424. get
  425. {
  426. if (skipUnknownElementMethod == null)
  427. skipUnknownElementMethod = typeof(XmlObjectSerializerReadContext).GetMethod("SkipUnknownElement", Globals.ScanAllMembers);
  428. return skipUnknownElementMethod;
  429. }
  430. }
  431. [SecurityCritical]
  432. static MethodInfo readIfNullOrRefMethod;
  433. internal static MethodInfo ReadIfNullOrRefMethod
  434. {
  435. [SecuritySafeCritical]
  436. get
  437. {
  438. if (readIfNullOrRefMethod == null)
  439. readIfNullOrRefMethod = typeof(XmlObjectSerializerReadContext).GetMethod("ReadIfNullOrRef", Globals.ScanAllMembers, null, new Type[] { typeof(XmlReaderDelegator), typeof(Type), typeof(bool) }, null);
  440. return readIfNullOrRefMethod;
  441. }
  442. }
  443. [SecurityCritical]
  444. static MethodInfo readAttributesMethod;
  445. internal static MethodInfo ReadAttributesMethod
  446. {
  447. [SecuritySafeCritical]
  448. get
  449. {
  450. if (readAttributesMethod == null)
  451. readAttributesMethod = typeof(XmlObjectSerializerReadContext).GetMethod("ReadAttributes", Globals.ScanAllMembers);
  452. return readAttributesMethod;
  453. }
  454. }
  455. [SecurityCritical]
  456. static MethodInfo resetAttributesMethod;
  457. internal static MethodInfo ResetAttributesMethod
  458. {
  459. [SecuritySafeCritical]
  460. get
  461. {
  462. if (resetAttributesMethod == null)
  463. resetAttributesMethod = typeof(XmlObjectSerializerReadContext).GetMethod("ResetAttributes", Globals.ScanAllMembers);
  464. return resetAttributesMethod;
  465. }
  466. }
  467. [SecurityCritical]
  468. static MethodInfo getObjectIdMethod;
  469. internal static MethodInfo GetObjectIdMethod
  470. {
  471. [SecuritySafeCritical]
  472. get
  473. {
  474. if (getObjectIdMethod == null)
  475. getObjectIdMethod = typeof(XmlObjectSerializerReadContext).GetMethod("GetObjectId", Globals.ScanAllMembers);
  476. return getObjectIdMethod;
  477. }
  478. }
  479. [SecurityCritical]
  480. static MethodInfo getArraySizeMethod;
  481. internal static MethodInfo GetArraySizeMethod
  482. {
  483. [SecuritySafeCritical]
  484. get
  485. {
  486. if (getArraySizeMethod == null)
  487. getArraySizeMethod = typeof(XmlObjectSerializerReadContext).GetMethod("GetArraySize", Globals.ScanAllMembers);
  488. return getArraySizeMethod;
  489. }
  490. }
  491. [SecurityCritical]
  492. static MethodInfo addNewObjectMethod;
  493. internal static MethodInfo AddNewObjectMethod
  494. {
  495. [SecuritySafeCritical]
  496. get
  497. {
  498. if (addNewObjectMethod == null)
  499. addNewObjectMethod = typeof(XmlObjectSerializerReadContext).GetMethod("AddNewObject", Globals.ScanAllMembers);
  500. return addNewObjectMethod;
  501. }
  502. }
  503. [SecurityCritical]
  504. static MethodInfo addNewObjectWithIdMethod;
  505. internal static MethodInfo AddNewObjectWithIdMethod
  506. {
  507. [SecuritySafeCritical]
  508. get
  509. {
  510. if (addNewObjectWithIdMethod == null)
  511. addNewObjectWithIdMethod = typeof(XmlObjectSerializerReadContext).GetMethod("AddNewObjectWithId", Globals.ScanAllMembers);
  512. return addNewObjectWithIdMethod;
  513. }
  514. }
  515. [SecurityCritical]
  516. static MethodInfo replaceDeserializedObjectMethod;
  517. internal static MethodInfo ReplaceDeserializedObjectMethod
  518. {
  519. [SecuritySafeCritical]
  520. get
  521. {
  522. if (replaceDeserializedObjectMethod == null)
  523. replaceDeserializedObjectMethod = typeof(XmlObjectSerializerReadContext).GetMethod("ReplaceDeserializedObject", Globals.ScanAllMembers);
  524. return replaceDeserializedObjectMethod;
  525. }
  526. }
  527. [SecurityCritical]
  528. static MethodInfo getExistingObjectMethod;
  529. internal static MethodInfo GetExistingObjectMethod
  530. {
  531. [SecuritySafeCritical]
  532. get
  533. {
  534. if (getExistingObjectMethod == null)
  535. getExistingObjectMethod = typeof(XmlObjectSerializerReadContext).GetMethod("GetExistingObject", Globals.ScanAllMembers);
  536. return getExistingObjectMethod;
  537. }
  538. }
  539. [SecurityCritical]
  540. static MethodInfo getRealObjectMethod;
  541. internal static MethodInfo GetRealObjectMethod
  542. {
  543. [SecuritySafeCritical]
  544. get
  545. {
  546. if (getRealObjectMethod == null)
  547. getRealObjectMethod = typeof(XmlObjectSerializerReadContext).GetMethod("GetRealObject", Globals.ScanAllMembers);
  548. return getRealObjectMethod;
  549. }
  550. }
  551. [SecurityCritical]
  552. static MethodInfo readMethod;
  553. internal static MethodInfo ReadMethod
  554. {
  555. [SecuritySafeCritical]
  556. get
  557. {
  558. if (readMethod == null)
  559. readMethod = typeof(XmlObjectSerializerReadContext).GetMethod("Read", Globals.ScanAllMembers);
  560. return readMethod;
  561. }
  562. }
  563. [SecurityCritical]
  564. static MethodInfo ensureArraySizeMethod;
  565. internal static MethodInfo EnsureArraySizeMethod
  566. {
  567. [SecuritySafeCritical]
  568. get
  569. {
  570. if (ensureArraySizeMethod == null)
  571. ensureArraySizeMethod = typeof(XmlObjectSerializerReadContext).GetMethod("EnsureArraySize", Globals.ScanAllMembers);
  572. return ensureArraySizeMethod;
  573. }
  574. }
  575. [SecurityCritical]
  576. static MethodInfo trimArraySizeMethod;
  577. internal static MethodInfo TrimArraySizeMethod
  578. {
  579. [SecuritySafeCritical]
  580. get
  581. {
  582. if (trimArraySizeMethod == null)
  583. trimArraySizeMethod = typeof(XmlObjectSerializerReadContext).GetMethod("TrimArraySize", Globals.ScanAllMembers);
  584. return trimArraySizeMethod;
  585. }
  586. }
  587. [SecurityCritical]
  588. static MethodInfo checkEndOfArrayMethod;
  589. internal static MethodInfo CheckEndOfArrayMethod
  590. {
  591. [SecuritySafeCritical]
  592. get
  593. {
  594. if (checkEndOfArrayMethod == null)
  595. checkEndOfArrayMethod = typeof(XmlObjectSerializerReadContext).GetMethod("CheckEndOfArray", Globals.ScanAllMembers);
  596. return checkEndOfArrayMethod;
  597. }
  598. }
  599. [SecurityCritical]
  600. static MethodInfo getArrayLengthMethod;
  601. internal static MethodInfo GetArrayLengthMethod
  602. {
  603. [SecuritySafeCritical]
  604. get
  605. {
  606. if (getArrayLengthMethod == null)
  607. getArrayLengthMethod = Globals.TypeOfArray.GetProperty("Length").GetGetMethod();
  608. return getArrayLengthMethod;
  609. }
  610. }
  611. [SecurityCritical]
  612. static MethodInfo readSerializationInfoMethod;
  613. internal static MethodInfo ReadSerializationInfoMethod
  614. {
  615. [SecuritySafeCritical]
  616. get
  617. {
  618. if (readSerializationInfoMethod == null)
  619. readSerializationInfoMethod = typeof(XmlObjectSerializerReadContext).GetMethod("ReadSerializationInfo", Globals.ScanAllMembers);
  620. return readSerializationInfoMethod;
  621. }
  622. }
  623. [SecurityCritical]
  624. static MethodInfo createUnexpectedStateExceptionMethod;
  625. internal static MethodInfo CreateUnexpectedStateExceptionMethod
  626. {
  627. [SecuritySafeCritical]
  628. get
  629. {
  630. if (createUnexpectedStateExceptionMethod == null)
  631. createUnexpectedStateExceptionMethod = typeof(XmlObjectSerializerReadContext).GetMethod("CreateUnexpectedStateException", Globals.ScanAllMembers, null, new Type[] { typeof(XmlNodeType), typeof(XmlReaderDelegator) }, null);
  632. return createUnexpectedStateExceptionMethod;
  633. }
  634. }
  635. [SecurityCritical]
  636. static MethodInfo internalSerializeReferenceMethod;
  637. internal static MethodInfo InternalSerializeReferenceMethod
  638. {
  639. [SecuritySafeCritical]
  640. get
  641. {
  642. if (internalSerializeReferenceMethod == null)
  643. internalSerializeReferenceMethod = typeof(XmlObjectSerializerWriteContext).GetMethod("InternalSerializeReference", Globals.ScanAllMembers);
  644. return internalSerializeReferenceMethod;
  645. }
  646. }
  647. [SecurityCritical]
  648. static MethodInfo internalSerializeMethod;
  649. internal static MethodInfo InternalSerializeMethod
  650. {
  651. [SecuritySafeCritical]
  652. get
  653. {
  654. if (internalSerializeMethod == null)
  655. internalSerializeMethod = typeof(XmlObjectSerializerWriteContext).GetMethod("InternalSerialize", Globals.ScanAllMembers);
  656. return internalSerializeMethod;
  657. }
  658. }
  659. [SecurityCritical]
  660. static MethodInfo writeNullMethod;
  661. internal static MethodInfo WriteNullMethod
  662. {
  663. [SecuritySafeCritical]
  664. get
  665. {
  666. if (writeNullMethod == null)
  667. writeNullMethod = typeof(XmlObjectSerializerWriteContext).GetMethod("WriteNull", Globals.ScanAllMembers, null, new Type[] { typeof(XmlWriterDelegator), typeof(Type), typeof(bool) }, null);
  668. return writeNullMethod;
  669. }
  670. }
  671. [SecurityCritical]
  672. static MethodInfo incrementArrayCountMethod;
  673. internal static MethodInfo IncrementArrayCountMethod
  674. {
  675. [SecuritySafeCritical]
  676. get
  677. {
  678. if (incrementArrayCountMethod == null)
  679. incrementArrayCountMethod = typeof(XmlObjectSerializerWriteContext).GetMethod("IncrementArrayCount", Globals.ScanAllMembers);
  680. return incrementArrayCountMethod;
  681. }
  682. }
  683. [SecurityCritical]
  684. static MethodInfo incrementCollectionCountMethod;
  685. internal static MethodInfo IncrementCollectionCountMethod
  686. {
  687. [SecuritySafeCritical]
  688. get
  689. {
  690. if (incrementCollectionCountMethod == null)
  691. incrementCollectionCountMethod = typeof(XmlObjectSerializerWriteContext).GetMethod("IncrementCollectionCount", Globals.ScanAllMembers, null, new Type[] { typeof(XmlWriterDelegator), typeof(ICollection) }, null);
  692. return incrementCollectionCountMethod;
  693. }
  694. }
  695. [SecurityCritical]
  696. static MethodInfo incrementCollectionCountGenericMethod;
  697. internal static MethodInfo IncrementCollectionCountGenericMethod
  698. {
  699. [SecuritySafeCritical]
  700. get
  701. {
  702. if (incrementCollectionCountGenericMethod == null)
  703. incrementCollectionCountGenericMethod = typeof(XmlObjectSerializerWriteContext).GetMethod("IncrementCollectionCountGeneric", Globals.ScanAllMembers);
  704. return incrementCollectionCountGenericMethod;
  705. }
  706. }
  707. [SecurityCritical]
  708. static MethodInfo getDefaultValueMethod;
  709. internal static MethodInfo GetDefaultValueMethod
  710. {
  711. [SecuritySafeCritical]
  712. get
  713. {
  714. if (getDefaultValueMethod == null)
  715. getDefaultValueMethod = typeof(XmlObjectSerializerWriteContext).GetMethod("GetDefaultValue", Globals.ScanAllMembers);
  716. return getDefaultValueMethod;
  717. }
  718. }
  719. [SecurityCritical]
  720. static MethodInfo getNullableValueMethod;
  721. internal static MethodInfo GetNullableValueMethod
  722. {
  723. [SecuritySafeCritical]
  724. get
  725. {
  726. if (getNullableValueMethod == null)
  727. getNullableValueMethod = typeof(XmlObjectSerializerWriteContext).GetMethod("GetNullableValue", Globals.ScanAllMembers);
  728. return getNullableValueMethod;
  729. }
  730. }
  731. [SecurityCritical]
  732. static MethodInfo throwRequiredMemberMustBeEmittedMethod;
  733. internal static MethodInfo ThrowRequiredMemberMustBeEmittedMethod
  734. {
  735. [SecuritySafeCritical]
  736. get
  737. {
  738. if (throwRequiredMemberMustBeEmittedMethod == null)
  739. throwRequiredMemberMustBeEmittedMethod = typeof(XmlObjectSerializerWriteContext).GetMethod("ThrowRequiredMemberMustBeEmitted", Globals.ScanAllMembers);
  740. return throwRequiredMemberMustBeEmittedMethod;
  741. }
  742. }
  743. [SecurityCritical]
  744. static MethodInfo getHasValueMethod;
  745. internal static MethodInfo GetHasValueMethod
  746. {
  747. [SecuritySafeCritical]
  748. get
  749. {
  750. if (getHasValueMethod == null)
  751. getHasValueMethod = typeof(XmlObjectSerializerWriteContext).GetMethod("GetHasValue", Globals.ScanAllMembers);
  752. return getHasValueMethod;
  753. }
  754. }
  755. [SecurityCritical]
  756. static MethodInfo writeISerializableMethod;
  757. internal static MethodInfo WriteISerializableMethod
  758. {
  759. [SecuritySafeCritical]
  760. get
  761. {
  762. if (writeISerializableMethod == null)
  763. writeISerializableMethod = typeof(XmlObjectSerializerWriteContext).GetMethod("WriteISerializable", Globals.ScanAllMembers);
  764. return writeISerializableMethod;
  765. }
  766. }
  767. [SecurityCritical]
  768. static MethodInfo writeExtensionDataMethod;
  769. internal static MethodInfo WriteExtensionDataMethod
  770. {
  771. [SecuritySafeCritical]
  772. get
  773. {
  774. if (writeExtensionDataMethod == null)
  775. writeExtensionDataMethod = typeof(XmlObjectSerializerWriteContext).GetMethod("WriteExtensionData", Globals.ScanAllMembers);
  776. return writeExtensionDataMethod;
  777. }
  778. }
  779. [SecurityCritical]
  780. static MethodInfo writeXmlValueMethod;
  781. internal static MethodInfo WriteXmlValueMethod
  782. {
  783. [SecuritySafeCritical]
  784. get
  785. {
  786. if (writeXmlValueMethod == null)
  787. writeXmlValueMethod = typeof(DataContract).GetMethod("WriteXmlValue", Globals.ScanAllMembers);
  788. return writeXmlValueMethod;
  789. }
  790. }
  791. [SecurityCritical]
  792. static MethodInfo readXmlValueMethod;
  793. internal static MethodInfo ReadXmlValueMethod
  794. {
  795. [SecuritySafeCritical]
  796. get
  797. {
  798. if (readXmlValueMethod == null)
  799. readXmlValueMethod = typeof(DataContract).GetMethod("ReadXmlValue", Globals.ScanAllMembers);
  800. return readXmlValueMethod;
  801. }
  802. }
  803. [SecurityCritical]
  804. static MethodInfo throwTypeNotSerializableMethod;
  805. internal static MethodInfo ThrowTypeNotSerializableMethod
  806. {
  807. [SecuritySafeCritical]
  808. get
  809. {
  810. if (throwTypeNotSerializableMethod == null)
  811. throwTypeNotSerializableMethod = typeof(DataContract).GetMethod("ThrowTypeNotSerializable", Globals.ScanAllMembers);
  812. return throwTypeNotSerializableMethod;
  813. }
  814. }
  815. [SecurityCritical]
  816. static PropertyInfo namespaceProperty;
  817. internal static PropertyInfo NamespaceProperty
  818. {
  819. [SecuritySafeCritical]
  820. get
  821. {
  822. if (namespaceProperty == null)
  823. namespaceProperty = typeof(DataContract).GetProperty("Namespace", Globals.ScanAllMembers);
  824. return namespaceProperty;
  825. }
  826. }
  827. [SecurityCritical]
  828. static FieldInfo contractNamespacesField;
  829. internal static FieldInfo ContractNamespacesField
  830. {
  831. [SecuritySafeCritical]
  832. get
  833. {
  834. if (contractNamespacesField == null)
  835. contractNamespacesField = typeof(ClassDataContract).GetField("ContractNamespaces", Globals.ScanAllMembers);
  836. return contractNamespacesField;
  837. }
  838. }
  839. [SecurityCritical]
  840. static FieldInfo memberNamesField;
  841. internal static FieldInfo MemberNamesField
  842. {
  843. [SecuritySafeCritical]
  844. get
  845. {
  846. if (memberNamesField == null)
  847. memberNamesField = typeof(ClassDataContract).GetField("MemberNames", Globals.ScanAllMembers);
  848. return memberNamesField;
  849. }
  850. }
  851. [SecurityCritical]
  852. static MethodInfo extensionDataSetExplicitMethodInfo;
  853. internal static MethodInfo ExtensionDataSetExplicitMethodInfo
  854. {
  855. [SecuritySafeCritical]
  856. get
  857. {
  858. if (extensionDataSetExplicitMethodInfo == null)
  859. extensionDataSetExplicitMethodInfo = typeof(IExtensibleDataObject).GetMethod(Globals.ExtensionDataSetMethod);
  860. return extensionDataSetExplicitMethodInfo;
  861. }
  862. }
  863. [SecurityCritical]
  864. static PropertyInfo childElementNamespacesProperty;
  865. internal static PropertyInfo ChildElementNamespacesProperty
  866. {
  867. [SecuritySafeCritical]
  868. get
  869. {
  870. if (childElementNamespacesProperty == null)
  871. childElementNamespacesProperty = typeof(ClassDataContract).GetProperty("ChildElementNamespaces", Globals.ScanAllMembers);
  872. return childElementNamespacesProperty;
  873. }
  874. }
  875. [SecurityCritical]
  876. static PropertyInfo collectionItemNameProperty;
  877. internal static PropertyInfo CollectionItemNameProperty
  878. {
  879. [SecuritySafeCritical]
  880. get
  881. {
  882. if (collectionItemNameProperty == null)
  883. collectionItemNameProperty = typeof(CollectionDataContract).GetProperty("CollectionItemName", Globals.ScanAllMembers);
  884. return collectionItemNameProperty;
  885. }
  886. }
  887. [SecurityCritical]
  888. static PropertyInfo childElementNamespaceProperty;
  889. internal static PropertyInfo ChildElementNamespaceProperty
  890. {
  891. [SecuritySafeCritical]
  892. get
  893. {
  894. if (childElementNamespaceProperty == null)
  895. childElementNamespaceProperty = typeof(CollectionDataContract).GetProperty("ChildElementNamespace", Globals.ScanAllMembers);
  896. return childElementNamespaceProperty;
  897. }
  898. }
  899. [SecurityCritical]
  900. static MethodInfo getDateTimeOffsetMethod;
  901. internal static MethodInfo GetDateTimeOffsetMethod
  902. {
  903. [SecuritySafeCritical]
  904. get
  905. {
  906. if (getDateTimeOffsetMethod == null)
  907. getDateTimeOffsetMethod = typeof(DateTimeOffsetAdapter).GetMethod("GetDateTimeOffset", Globals.ScanAllMembers);
  908. return getDateTimeOffsetMethod;
  909. }
  910. }
  911. [SecurityCritical]
  912. static MethodInfo getDateTimeOffsetAdapterMethod;
  913. internal static MethodInfo GetDateTimeOffsetAdapterMethod
  914. {
  915. [SecuritySafeCritical]
  916. get
  917. {
  918. if (getDateTimeOffsetAdapterMethod == null)
  919. getDateTimeOffsetAdapterMethod = typeof(DateTimeOffsetAdapter).GetMethod("GetDateTimeOffsetAdapter", Globals.ScanAllMembers);
  920. return getDateTimeOffsetAdapterMethod;
  921. }
  922. }
  923. [SecurityCritical]
  924. static MethodInfo traceInstructionMethod;
  925. internal static MethodInfo TraceInstructionMethod
  926. {
  927. [SecuritySafeCritical]
  928. get
  929. {
  930. if (traceInstructionMethod == null)
  931. traceInstructionMethod = typeof(SerializationTrace).GetMethod("TraceInstruction", Globals.ScanAllMembers);
  932. return traceInstructionMethod;
  933. }
  934. }
  935. [SecurityCritical]
  936. static MethodInfo throwInvalidDataContractExceptionMethod;
  937. internal static MethodInfo ThrowInvalidDataContractExceptionMethod
  938. {
  939. [SecuritySafeCritical]
  940. get
  941. {
  942. if (throwInvalidDataContractExceptionMethod == null)
  943. throwInvalidDataContractExceptionMethod = typeof(DataContract).GetMethod("ThrowInvalidDataContractException", Globals.ScanAllMembers, null, new Type[] { typeof(string), typeof(Type) }, null);
  944. return throwInvalidDataContractExceptionMethod;
  945. }
  946. }
  947. [SecurityCritical]
  948. static PropertyInfo serializeReadOnlyTypesProperty;
  949. internal static PropertyInfo SerializeReadOnlyTypesProperty
  950. {
  951. [SecuritySafeCritical]
  952. get
  953. {
  954. if (serializeReadOnlyTypesProperty == null)
  955. serializeReadOnlyTypesProperty = typeof(XmlObjectSerializerWriteContext).GetProperty("SerializeReadOnlyTypes", Globals.ScanAllMembers);
  956. return serializeReadOnlyTypesProperty;
  957. }
  958. }
  959. [SecurityCritical]
  960. static PropertyInfo classSerializationExceptionMessageProperty;
  961. internal static PropertyInfo ClassSerializationExceptionMessageProperty
  962. {
  963. [SecuritySafeCritical]
  964. get
  965. {
  966. if (classSerializationExceptionMessageProperty == null)
  967. classSerializationExceptionMessageProperty = typeof(ClassDataContract).GetProperty("SerializationExceptionMessage", Globals.ScanAllMembers);
  968. return classSerializationExceptionMessageProperty;
  969. }
  970. }
  971. [SecurityCritical]
  972. static PropertyInfo collectionSerializationExceptionMessageProperty;
  973. internal static PropertyInfo CollectionSerializationExceptionMessageProperty
  974. {
  975. [SecuritySafeCritical]
  976. get
  977. {
  978. if (collectionSerializationExceptionMessageProperty == null)
  979. collectionSerializationExceptionMessageProperty = typeof(CollectionDataContract).GetProperty("SerializationExceptionMessage", Globals.ScanAllMembers);
  980. return collectionSerializationExceptionMessageProperty;
  981. }
  982. }
  983. }
  984. }