13 private struct SoapArrayInfo
17 public int dimensions;
21 public int jaggedDimensions;
29 private object source;
53 public string[]
Ids => ids;
60 : this(o, callback, new string[count])
70 this.callback = callback;
81 private object collection;
83 private object collectionItems;
103 this.callback = callback;
104 this.collection = collection;
105 this.collectionItems = collectionItems;
111 private XmlCountingReader countingReader;
135 private bool isReturnValue;
137 private bool decodeName =
true;
139 private string schemaNsID;
141 private string schemaNs1999ID;
143 private string schemaNs2000ID;
145 private string schemaNonXsdTypesNsID;
147 private string instanceNsID;
149 private string instanceNs2000ID;
151 private string instanceNs1999ID;
153 private string soapNsID;
155 private string soap12NsID;
157 private string schemaID;
159 private string wsdlNsID;
161 private string wsdlArrayTypeID;
163 private string nullID;
165 private string nilID;
167 private string typeID;
169 private string arrayTypeID;
171 private string itemTypeID;
173 private string arraySizeID;
175 private string arrayID;
177 private string urTypeID;
179 private string stringID;
181 private string intID;
183 private string booleanID;
185 private string shortID;
187 private string longID;
189 private string floatID;
191 private string doubleID;
193 private string decimalID;
195 private string dateTimeID;
197 private string qnameID;
199 private string dateID;
201 private string timeID;
203 private string hexBinaryID;
205 private string base64BinaryID;
207 private string base64ID;
209 private string unsignedByteID;
211 private string byteID;
213 private string unsignedShortID;
215 private string unsignedIntID;
217 private string unsignedLongID;
219 private string oldDecimalID;
221 private string oldTimeInstantID;
223 private string anyURIID;
225 private string durationID;
227 private string ENTITYID;
229 private string ENTITIESID;
231 private string gDayID;
233 private string gMonthID;
235 private string gMonthDayID;
237 private string gYearID;
239 private string gYearMonthID;
243 private string IDREFID;
245 private string IDREFSID;
247 private string integerID;
249 private string languageID;
251 private string NameID;
253 private string NCNameID;
255 private string NMTOKENID;
257 private string NMTOKENSID;
259 private string negativeIntegerID;
261 private string nonPositiveIntegerID;
263 private string nonNegativeIntegerID;
265 private string normalizedStringID;
267 private string NOTATIONID;
269 private string positiveIntegerID;
271 private string tokenID;
273 private string charID;
275 private string guidID;
277 private string timeSpanID;
279 private static bool checkDeserializeAdvances;
306 if (!checkDeserializeAdvances)
310 return countingReader.AdvanceCount;
344 isReturnValue = value;
350 checkDeserializeAdvances = ((ConfigurationManager.GetSection(ConfigurationStrings.XmlSerializerSectionPath) as
XmlSerializerSection)?.CheckDeserializeAdvances ??
false);
354 protected abstract void InitIDs();
356 internal void Init(
XmlReader r, XmlDeserializationEvents events,
string encodingStyle, TempAssembly tempAssembly)
358 this.events = events;
359 if (checkDeserializeAdvances)
361 countingReader =
new XmlCountingReader(r);
362 this.r = countingReader;
369 soap12 = (encodingStyle ==
"http://www.w3.org/2003/05/soap-encoding");
371 schemaNsID = r.
NameTable.
Add(
"http://www.w3.org/2001/XMLSchema");
372 schemaNs2000ID = r.
NameTable.
Add(
"http://www.w3.org/2000/10/XMLSchema");
373 schemaNs1999ID = r.
NameTable.
Add(
"http://www.w3.org/1999/XMLSchema");
374 schemaNonXsdTypesNsID = r.
NameTable.
Add(
"http://microsoft.com/wsdl/types/");
375 instanceNsID = r.
NameTable.
Add(
"http://www.w3.org/2001/XMLSchema-instance");
376 instanceNs2000ID = r.
NameTable.
Add(
"http://www.w3.org/2000/10/XMLSchema-instance");
377 instanceNs1999ID = r.
NameTable.
Add(
"http://www.w3.org/1999/XMLSchema-instance");
378 soapNsID = r.
NameTable.
Add(
"http://schemas.xmlsoap.org/soap/encoding/");
379 soap12NsID = r.
NameTable.
Add(
"http://www.w3.org/2003/05/soap-encoding");
381 wsdlNsID = r.
NameTable.
Add(
"http://schemas.xmlsoap.org/wsdl/");
399 return DynamicAssemblies.Get(assemblyFullName);
402 private void InitPrimitiveIDs()
406 object obj = r.
NameTable.
Add(
"http://www.w3.org/2001/XMLSchema");
407 object obj2 = r.
NameTable.
Add(
"http://microsoft.com/wsdl/types/");
455 nonNegativeIntegerID = r.
NameTable.
Add(
"nonNegativeInteger");
456 nonPositiveIntegerID = r.
NameTable.
Add(
"nonPositiveInteger");
457 normalizedStringID = r.
NameTable.
Add(
"normalizedString");
468 string attribute = r.
GetAttribute(typeID, instanceNsID);
469 if (attribute ==
null)
472 if (attribute ==
null)
475 if (attribute ==
null)
487 if ((
object)typeName.
Namespace == schemaNsID || (
object)typeName.
Namespace == soapNsID || (
object)typeName.
Namespace == soap12NsID)
489 if ((
object)typeName.
Name == stringID || (
object)typeName.
Name == anyURIID || (
object)typeName.
Name == durationID || (
object)typeName.
Name == ENTITYID || (
object)typeName.
Name == ENTITIESID || (
object)typeName.
Name == gDayID || (
object)typeName.
Name == gMonthID || (
object)typeName.
Name == gMonthDayID || (
object)typeName.
Name == gYearID || (
object)typeName.
Name == gYearMonthID || (
object)typeName.
Name == IDID || (
object)typeName.
Name == IDREFID || (
object)typeName.
Name == IDREFSID || (
object)typeName.
Name == integerID || (
object)typeName.
Name == languageID || (
object)typeName.
Name == NameID || (
object)typeName.
Name == NCNameID || (
object)typeName.
Name == NMTOKENID || (
object)typeName.
Name == NMTOKENSID || (
object)typeName.
Name == negativeIntegerID || (
object)typeName.
Name == nonPositiveIntegerID || (
object)typeName.
Name == nonNegativeIntegerID || (
object)typeName.
Name == normalizedStringID || (
object)typeName.
Name == NOTATIONID || (
object)typeName.
Name == positiveIntegerID || (
object)typeName.
Name == tokenID)
491 return typeof(
string);
493 if ((
object)typeName.
Name == intID)
497 if ((
object)typeName.
Name == booleanID)
501 if ((
object)typeName.
Name == shortID)
503 return typeof(
short);
505 if ((
object)typeName.
Name == longID)
509 if ((
object)typeName.
Name == floatID)
511 return typeof(
float);
513 if ((
object)typeName.
Name == doubleID)
515 return typeof(
double);
517 if ((
object)typeName.
Name == decimalID)
519 return typeof(decimal);
521 if ((
object)typeName.
Name == dateTimeID)
523 return typeof(DateTime);
525 if ((
object)typeName.
Name == qnameID)
527 return typeof(XmlQualifiedName);
529 if ((
object)typeName.
Name == dateID)
531 return typeof(DateTime);
533 if ((
object)typeName.
Name == timeID)
535 return typeof(DateTime);
537 if ((
object)typeName.
Name == hexBinaryID)
539 return typeof(
byte[]);
541 if ((
object)typeName.
Name == base64BinaryID)
543 return typeof(
byte[]);
545 if ((
object)typeName.
Name == unsignedByteID)
549 if ((
object)typeName.
Name == byteID)
551 return typeof(sbyte);
553 if ((
object)typeName.
Name == unsignedShortID)
555 return typeof(ushort);
557 if ((
object)typeName.
Name == unsignedIntID)
561 if ((
object)typeName.
Name == unsignedLongID)
563 return typeof(ulong);
567 if ((
object)typeName.
Namespace == schemaNs2000ID || (
object)typeName.
Namespace == schemaNs1999ID)
569 if ((
object)typeName.
Name == stringID || (
object)typeName.
Name == anyURIID || (
object)typeName.
Name == durationID || (
object)typeName.
Name == ENTITYID || (
object)typeName.
Name == ENTITIESID || (
object)typeName.
Name == gDayID || (
object)typeName.
Name == gMonthID || (
object)typeName.
Name == gMonthDayID || (
object)typeName.
Name == gYearID || (
object)typeName.
Name == gYearMonthID || (
object)typeName.
Name == IDID || (
object)typeName.
Name == IDREFID || (
object)typeName.
Name == IDREFSID || (
object)typeName.
Name == integerID || (
object)typeName.
Name == languageID || (
object)typeName.
Name == NameID || (
object)typeName.
Name == NCNameID || (
object)typeName.
Name == NMTOKENID || (
object)typeName.
Name == NMTOKENSID || (
object)typeName.
Name == negativeIntegerID || (
object)typeName.
Name == nonPositiveIntegerID || (
object)typeName.
Name == nonNegativeIntegerID || (
object)typeName.
Name == normalizedStringID || (
object)typeName.
Name == NOTATIONID || (
object)typeName.
Name == positiveIntegerID || (
object)typeName.
Name == tokenID)
571 return typeof(
string);
573 if ((
object)typeName.
Name == intID)
577 if ((
object)typeName.
Name == booleanID)
581 if ((
object)typeName.
Name == shortID)
583 return typeof(
short);
585 if ((
object)typeName.
Name == longID)
589 if ((
object)typeName.
Name == floatID)
591 return typeof(
float);
593 if ((
object)typeName.
Name == doubleID)
595 return typeof(
double);
597 if ((
object)typeName.
Name == oldDecimalID)
599 return typeof(decimal);
601 if ((
object)typeName.
Name == oldTimeInstantID)
603 return typeof(DateTime);
605 if ((
object)typeName.
Name == qnameID)
607 return typeof(XmlQualifiedName);
609 if ((
object)typeName.
Name == dateID)
611 return typeof(DateTime);
613 if ((
object)typeName.
Name == timeID)
615 return typeof(DateTime);
617 if ((
object)typeName.
Name == hexBinaryID)
619 return typeof(
byte[]);
621 if ((
object)typeName.
Name == byteID)
623 return typeof(sbyte);
625 if ((
object)typeName.
Name == unsignedShortID)
627 return typeof(ushort);
629 if ((
object)typeName.
Name == unsignedIntID)
633 if ((
object)typeName.
Name == unsignedLongID)
635 return typeof(ulong);
639 if ((
object)typeName.
Namespace == schemaNonXsdTypesNsID)
641 if ((
object)typeName.
Name == charID)
645 if ((
object)typeName.
Name == guidID)
658 private bool IsPrimitiveNamespace(
string ns)
660 if ((
object)ns != schemaNsID && (
object)ns != schemaNonXsdTypesNsID && (
object)ns != soapNsID && (
object)ns != soap12NsID && (
object)ns != schemaNs2000ID)
662 return (
object)ns == schemaNs1999ID;
667 private string ReadStringValue()
680 private XmlQualifiedName ReadXmlQualifiedName()
686 value =
string.Empty;
706 private byte[] ReadByteArray(
bool isBase64)
713 byte[] array =
new byte[num];
714 arrayList.
Add(array);
717 if (num3 == array.Length)
719 num = Math.Min(num * 2, 65536);
720 array =
new byte[num];
722 arrayList.
Add(array);
728 byte[] array2 =
new byte[num4];
730 foreach (
byte[] item
in arrayList)
732 num = Math.Min(item.Length, num4);
735 Buffer.BlockCopy(item, 0, array2, num3, num);
756 if (!IsPrimitiveNamespace(type.
Namespace) || (
object)type.
Name == urTypeID)
758 return ReadXmlNodes(elementCanBeType);
762 if ((
object)type.
Name == stringID || (
object)type.
Name == normalizedStringID)
764 return ReadStringValue();
766 if ((
object)type.
Name == anyURIID || (
object)type.
Name == durationID || (
object)type.
Name == ENTITYID || (
object)type.
Name == ENTITIESID || (
object)type.
Name == gDayID || (
object)type.
Name == gMonthID || (
object)type.
Name == gMonthDayID || (
object)type.
Name == gYearID || (
object)type.
Name == gYearMonthID || (
object)type.
Name == IDID || (
object)type.
Name == IDREFID || (
object)type.
Name == IDREFSID || (
object)type.
Name == integerID || (
object)type.
Name == languageID || (
object)type.
Name == NameID || (
object)type.
Name == NCNameID || (
object)type.
Name == NMTOKENID || (
object)type.
Name == NMTOKENSID || (
object)type.
Name == negativeIntegerID || (
object)type.
Name == nonPositiveIntegerID || (
object)type.
Name == nonNegativeIntegerID || (
object)type.
Name == NOTATIONID || (
object)type.
Name == positiveIntegerID || (
object)type.
Name == tokenID)
770 if ((
object)type.
Name == intID)
772 return XmlConvert.ToInt32(ReadStringValue());
774 if ((
object)type.
Name == booleanID)
776 return XmlConvert.ToBoolean(ReadStringValue());
778 if ((
object)type.
Name == shortID)
780 return XmlConvert.ToInt16(ReadStringValue());
782 if ((
object)type.
Name == longID)
784 return XmlConvert.ToInt64(ReadStringValue());
786 if ((
object)type.
Name == floatID)
788 return XmlConvert.ToSingle(ReadStringValue());
790 if ((
object)type.
Name == doubleID)
792 return XmlConvert.ToDouble(ReadStringValue());
794 if ((
object)type.
Name == decimalID)
796 return XmlConvert.ToDecimal(ReadStringValue());
798 if ((
object)type.
Name == dateTimeID)
802 if ((
object)type.
Name == qnameID)
804 return ReadXmlQualifiedName();
806 if ((
object)type.
Name == dateID)
808 return ToDate(ReadStringValue());
810 if ((
object)type.
Name == timeID)
812 return ToTime(ReadStringValue());
814 if ((
object)type.
Name == unsignedByteID)
816 return XmlConvert.ToByte(ReadStringValue());
818 if ((
object)type.
Name == byteID)
820 return XmlConvert.ToSByte(ReadStringValue());
822 if ((
object)type.
Name == unsignedShortID)
824 return XmlConvert.ToUInt16(ReadStringValue());
826 if ((
object)type.
Name == unsignedIntID)
828 return XmlConvert.ToUInt32(ReadStringValue());
830 if ((
object)type.
Name == unsignedLongID)
832 return XmlConvert.ToUInt64(ReadStringValue());
834 if ((
object)type.
Name == hexBinaryID)
838 if ((
object)type.
Name == base64BinaryID)
842 if ((
object)type.
Name == base64ID && ((
object)type.
Namespace == soapNsID || (
object)type.
Namespace == soap12NsID))
846 return ReadXmlNodes(elementCanBeType);
848 if ((
object)type.
Namespace == schemaNs2000ID || (
object)type.
Namespace == schemaNs1999ID)
850 if ((
object)type.
Name == stringID || (
object)type.
Name == normalizedStringID)
852 return ReadStringValue();
854 if ((
object)type.
Name == anyURIID || (
object)type.
Name == anyURIID || (
object)type.
Name == durationID || (
object)type.
Name == ENTITYID || (
object)type.
Name == ENTITIESID || (
object)type.
Name == gDayID || (
object)type.
Name == gMonthID || (
object)type.
Name == gMonthDayID || (
object)type.
Name == gYearID || (
object)type.
Name == gYearMonthID || (
object)type.
Name == IDID || (
object)type.
Name == IDREFID || (
object)type.
Name == IDREFSID || (
object)type.
Name == integerID || (
object)type.
Name == languageID || (
object)type.
Name == NameID || (
object)type.
Name == NCNameID || (
object)type.
Name == NMTOKENID || (
object)type.
Name == NMTOKENSID || (
object)type.
Name == negativeIntegerID || (
object)type.
Name == nonPositiveIntegerID || (
object)type.
Name == nonNegativeIntegerID || (
object)type.
Name == NOTATIONID || (
object)type.
Name == positiveIntegerID || (
object)type.
Name == tokenID)
858 if ((
object)type.
Name == intID)
860 return XmlConvert.ToInt32(ReadStringValue());
862 if ((
object)type.
Name == booleanID)
864 return XmlConvert.ToBoolean(ReadStringValue());
866 if ((
object)type.
Name == shortID)
868 return XmlConvert.ToInt16(ReadStringValue());
870 if ((
object)type.
Name == longID)
872 return XmlConvert.ToInt64(ReadStringValue());
874 if ((
object)type.
Name == floatID)
876 return XmlConvert.ToSingle(ReadStringValue());
878 if ((
object)type.
Name == doubleID)
880 return XmlConvert.ToDouble(ReadStringValue());
882 if ((
object)type.
Name == oldDecimalID)
884 return XmlConvert.ToDecimal(ReadStringValue());
886 if ((
object)type.
Name == oldTimeInstantID)
890 if ((
object)type.
Name == qnameID)
892 return ReadXmlQualifiedName();
894 if ((
object)type.
Name == dateID)
896 return ToDate(ReadStringValue());
898 if ((
object)type.
Name == timeID)
900 return ToTime(ReadStringValue());
902 if ((
object)type.
Name == unsignedByteID)
904 return XmlConvert.ToByte(ReadStringValue());
906 if ((
object)type.
Name == byteID)
908 return XmlConvert.ToSByte(ReadStringValue());
910 if ((
object)type.
Name == unsignedShortID)
912 return XmlConvert.ToUInt16(ReadStringValue());
914 if ((
object)type.
Name == unsignedIntID)
916 return XmlConvert.ToUInt32(ReadStringValue());
918 if ((
object)type.
Name == unsignedLongID)
920 return XmlConvert.ToUInt64(ReadStringValue());
922 return ReadXmlNodes(elementCanBeType);
924 if ((
object)type.
Namespace == schemaNonXsdTypesNsID)
926 if ((
object)type.
Name == charID)
928 return ToChar(ReadStringValue());
930 if ((
object)type.
Name == guidID)
936 return XmlConvert.ToTimeSpan(ReadStringValue());
938 return ReadXmlNodes(elementCanBeType);
940 return ReadXmlNodes(elementCanBeType);
950 if (!IsPrimitiveNamespace(type.
Namespace) || (
object)type.
Name == urTypeID)
956 if ((
object)type.
Name == stringID || (
object)type.
Name == anyURIID || (
object)type.
Name == durationID || (
object)type.
Name == ENTITYID || (
object)type.
Name == ENTITIESID || (
object)type.
Name == gDayID || (
object)type.
Name == gMonthID || (
object)type.
Name == gMonthDayID || (
object)type.
Name == gYearID || (
object)type.
Name == gYearMonthID || (
object)type.
Name == IDID || (
object)type.
Name == IDREFID || (
object)type.
Name == IDREFSID || (
object)type.
Name == integerID || (
object)type.
Name == languageID || (
object)type.
Name == NameID || (
object)type.
Name == NCNameID || (
object)type.
Name == NMTOKENID || (
object)type.
Name == NMTOKENSID || (
object)type.
Name == negativeIntegerID || (
object)type.
Name == nonPositiveIntegerID || (
object)type.
Name == nonNegativeIntegerID || (
object)type.
Name == normalizedStringID || (
object)type.
Name == NOTATIONID || (
object)type.
Name == positiveIntegerID || (
object)type.
Name == tokenID)
960 if ((
object)type.
Name == intID)
964 if ((
object)type.
Name == booleanID)
968 if ((
object)type.
Name == shortID)
972 if ((
object)type.
Name == longID)
976 if ((
object)type.
Name == floatID)
980 if ((
object)type.
Name == doubleID)
984 if ((
object)type.
Name == decimalID)
988 if ((
object)type.
Name == dateTimeID)
992 if ((
object)type.
Name == qnameID)
996 if ((
object)type.
Name == dateID)
1000 if ((
object)type.
Name == timeID)
1004 if ((
object)type.
Name == unsignedByteID)
1008 if ((
object)type.
Name == byteID)
1012 if ((
object)type.
Name == unsignedShortID)
1016 if ((
object)type.
Name == unsignedIntID)
1020 if ((
object)type.
Name == unsignedLongID)
1024 if ((
object)type.
Name == hexBinaryID)
1028 if ((
object)type.
Name == base64BinaryID)
1032 if ((
object)type.
Name == base64ID && ((
object)type.
Namespace == soapNsID || (
object)type.
Namespace == soap12NsID))
1038 if ((
object)type.
Namespace == schemaNonXsdTypesNsID)
1040 if ((
object)type.
Name == charID)
1044 if ((
object)type.
Name == guidID)
1067 if (name.Length == 5)
1071 return name[5] ==
':';
1080 int num = attr.
Value.LastIndexOf(
':');
1107 int whileIterations = 0;
1123 string attribute = r.
GetAttribute(nilID, instanceNsID);
1124 if (attribute ==
null)
1128 if (attribute ==
null)
1131 if (attribute ==
null)
1187 if (xmlNode ==
null)
1201 return value?.Trim();
1223 int whileIterations = 0;
1244 return XmlCustomFormatter.ToByteArrayBase64(value);
1257 return ReadByteArray(isBase64:
true);
1265 return XmlCustomFormatter.ToByteArrayHex(value);
1278 return ReadByteArray(isBase64:
false);
1291 string attribute = r.
GetAttribute(arrayTypeID, soapNsID);
1292 SoapArrayInfo soapArrayInfo = ParseArrayType(attribute);
1293 if (soapArrayInfo.dimensions != 1)
1298 if (xmlQualifiedName.
Name != name)
1306 return soapArrayInfo.length;
1309 private SoapArrayInfo ParseArrayType(
string value)
1315 if (value.Length == 0)
1317 throw new ArgumentException(Res.GetString(
"XmlEmptyArrayType", CurrentTag()),
"value");
1319 char[] array = value.ToCharArray();
1320 int num = array.Length;
1321 SoapArrayInfo result =
default(SoapArrayInfo);
1323 if (array[num2] !=
']')
1328 while (num2 != -1 && array[num2] !=
'[')
1330 if (array[num2] ==
',')
1332 throw new ArgumentException(Res.GetString(
"XmlInvalidArrayDimentions", CurrentTag()),
"value");
1338 throw new ArgumentException(Res.GetString(
"XmlMismatchedArrayBrackets"),
"value");
1340 int num3 = num - num2 - 2;
1343 string text =
new string(array, num2 + 1, num3);
1348 catch (Exception ex)
1354 throw new ArgumentException(Res.GetString(
"XmlInvalidArrayLength", text),
"value");
1362 result.jaggedDimensions = 0;
1363 while (num2 != -1 && array[num2] ==
']')
1368 throw new ArgumentException(Res.GetString(
"XmlMismatchedArrayBrackets"),
"value");
1370 if (array[num2] ==
',')
1372 throw new ArgumentException(Res.GetString(
"XmlInvalidArrayDimentions", CurrentTag()),
"value");
1374 if (array[num2] !=
'[')
1376 throw new ArgumentException(Res.GetString(
"XmlInvalidArraySyntax"),
"value");
1379 result.jaggedDimensions++;
1381 result.dimensions = 1;
1382 result.qname =
new string(array, 0, num2 + 1);
1386 private SoapArrayInfo ParseSoap12ArrayType(
string itemType,
string arraySize)
1388 SoapArrayInfo soapArrayInfo =
default(SoapArrayInfo);
1389 if (itemType !=
null && itemType.Length > 0)
1391 soapArrayInfo.qname = itemType;
1395 soapArrayInfo.qname =
"";
1397 string[] array = (arraySize ==
null || arraySize.Length <= 0) ?
new string[0] : arraySize.Split(
null);
1398 soapArrayInfo.dimensions = 0;
1399 soapArrayInfo.length = -1;
1400 for (
int i = 0; i < array.Length; i++)
1402 if (array[i].Length > 0)
1404 if (array[i] ==
"*")
1406 soapArrayInfo.dimensions++;
1413 soapArrayInfo.dimensions++;
1415 catch (Exception ex)
1421 throw new ArgumentException(Res.GetString(
"XmlInvalidArrayLength", array[i]),
"value");
1426 if (soapArrayInfo.dimensions == 0)
1428 soapArrayInfo.dimensions = 1;
1430 return soapArrayInfo;
1446 return XmlCustomFormatter.ToDate(value);
1454 return XmlCustomFormatter.ToTime(value);
1462 return XmlCustomFormatter.ToChar(value);
1472 return XmlCustomFormatter.ToEnum(value, h, typeName, validate:
true);
1480 return XmlCustomFormatter.ToXmlName(value);
1488 return XmlCustomFormatter.ToXmlNCName(value);
1496 return XmlCustomFormatter.ToXmlNmToken(value);
1504 return XmlCustomFormatter.ToXmlNmTokens(value);
1517 int num = value?.LastIndexOf(
':') ?? (-1);
1518 string text = (num < 0) ?
null : value.Substring(0, num);
1519 string text2 = value.Substring(num + 1);
1525 if (text ==
null || text.Length == 0)
1534 return new XmlQualifiedName(r.
NameTable.
Add(text2), text3);
1551 if (events.OnUnknownAttribute !=
null)
1553 GetCurrentPosition(out
int lineNumber, out
int linePosition);
1555 events.OnUnknownAttribute(events.sender, e);
1573 if (events.OnUnknownElement !=
null)
1575 GetCurrentPosition(out
int lineNumber, out
int linePosition);
1577 events.OnUnknownElement(events.sender, e);
1603 if (events.OnUnknownNode !=
null)
1623 if (unknownNode !=
null)
1627 GetCurrentPosition(out
int lineNumber, out
int linePosition);
1629 events.OnUnknownNode(events.sender, e);
1642 private void GetCurrentPosition(out
int lineNumber, out
int linePosition)
1644 if (
Reader is IXmlLineInfo)
1646 IXmlLineInfo xmlLineInfo = (IXmlLineInfo)
Reader;
1647 lineNumber = xmlLineInfo.LineNumber;
1648 linePosition = xmlLineInfo.LinePosition;
1652 lineNumber = (linePosition = -1);
1661 if (events.OnUnreferencedObject !=
null)
1664 events.OnUnreferencedObject(events.sender, e);
1668 private string CurrentTag()
1783 return new InvalidOperationException(Res.GetString(
"XmlSerializableBadDerivation", xsdDerived, nsDerived, xsdBase, nsBase, clrDerived, clrBase));
1858 if (text !=
null && trim)
1862 if (value ==
null || value.Length == 0)
1866 return value + text;
1908 return serializable;
1920 fixupReference =
null;
1929 fixupReference = text.Substring(1);
1933 fixupReference = text;
1954 if (targetsWithoutIds ==
null)
1960 targetsWithoutIds.
Add(o);
1965 if (targets ==
null)
1991 if (collectionFixups ==
null)
1995 collectionFixups.
Add(fixup);
2003 object obj = (targets !=
null) ? targets[
id] :
null;
2018 if (referencedTargets ==
null)
2022 referencedTargets[o] = o;
2026 private void HandleUnreferencedObjects()
2028 if (targets !=
null)
2032 if (referencedTargets ==
null || !referencedTargets.
Contains(target.
Value))
2038 if (targetsWithoutIds !=
null)
2040 foreach (
object targetsWithoutId
in targetsWithoutIds)
2042 if (referencedTargets ==
null || !referencedTargets.
Contains(targetsWithoutId))
2050 private void DoFixups()
2056 for (
int i = 0; i < fixups.
Count; i++)
2058 Fixup fixup = (Fixup)fixups[i];
2059 fixup.Callback(fixup);
2061 if (collectionFixups !=
null)
2063 for (
int j = 0; j < collectionFixups.
Count; j++)
2065 CollectionFixup collectionFixup = (CollectionFixup)collectionFixups[j];
2066 collectionFixup.Callback(collectionFixup.Collection, collectionFixup.CollectionItems);
2077 for (
int i = 0; i < array.Length; i++)
2079 string text = fixup2.
Ids[i];
2085 array.SetValue(target, i);
2095 private object ReadArray(
string typeName,
string typeNs)
2098 SoapArrayInfo soapArrayInfo;
2101 string attribute = r.
GetAttribute(itemTypeID, soap12NsID);
2102 string attribute2 = r.
GetAttribute(arraySizeID, soap12NsID);
2104 if (attribute ==
null && attribute2 ==
null && (type2 ==
null || !type2.
IsArray))
2108 soapArrayInfo = ParseSoap12ArrayType(attribute, attribute2);
2111 type = TypeScope.GetArrayElementType(type2,
null);
2116 string attribute3 = r.
GetAttribute(arrayTypeID, soapNsID);
2117 if (attribute3 ==
null)
2121 soapArrayInfo = ParseArrayType(attribute3);
2123 if (soapArrayInfo.dimensions != 1)
2125 throw new InvalidOperationException(Res.GetString(
"XmlInvalidArrayDimentions", CurrentTag()));
2128 XmlQualifiedName xmlQualifiedName =
new XmlQualifiedName(urTypeID, schemaNsID);
2129 XmlQualifiedName xmlQualifiedName2;
2130 if (soapArrayInfo.qname.Length > 0)
2133 type3 = (
Type)types[xmlQualifiedName2];
2137 xmlQualifiedName2 = xmlQualifiedName;
2139 if (soap12 && type3 == typeof(
object))
2148 type3 = GetPrimitiveType(xmlQualifiedName2, throwOnUnknown:
true);
2153 if (xmlQualifiedName2 != xmlQualifiedName)
2155 type3 = GetPrimitiveType(xmlQualifiedName2, throwOnUnknown:
false);
2161 else if (type ==
null)
2163 type3 = typeof(
object);
2169 XmlQualifiedName xmlQualifiedName3 = (XmlQualifiedName)typesReverse[type3];
2170 if (xmlQualifiedName3 ==
null)
2172 xmlQualifiedName3 = XmlSerializationWriter.GetPrimitiveTypeNameInternal(type3);
2179 if (xmlQualifiedName3 !=
null)
2181 xmlQualifiedName2 = xmlQualifiedName3;
2188 flag = type3.IsPrimitive;
2190 if (!soap12 && soapArrayInfo.jaggedDimensions > 0)
2192 for (
int i = 0; i < soapArrayInfo.jaggedDimensions; i++)
2194 type3 = type3.MakeArrayType();
2200 return Array.CreateInstance(type3, 0);
2206 if (type3.IsValueType)
2208 if (!flag && !type3.IsEnum)
2210 throw new NotSupportedException(Res.GetString(
"XmlRpcArrayOfValueTypes", type3.FullName));
2212 int whileIterations = 0;
2222 array =
ShrinkArray(array, num, type3, isNullable:
false);
2226 string[] array2 =
null;
2228 int whileIterations2 = 0;
2243 name = xmlQualifiedName2.Name;
2244 ns = xmlQualifiedName2.Namespace;
2252 if (soap12 && type3 == typeof(
object))
2255 for (
int j = 0; j < num; j++)
2257 object value = array.GetValue(j);
2260 Type type5 = value.GetType();
2261 if (type5.IsValueType)
2266 if (type4 ==
null || type5.IsAssignableFrom(type4))
2270 else if (!type4.IsAssignableFrom(type5))
2282 array2 = (
string[])
ShrinkArray(array2, num2, typeof(
string), isNullable:
false);
2283 array =
ShrinkArray(array, num, type3, isNullable:
false);
2298 int whileIterations = 0;
2307 HandleUnreferencedObjects();
2323 string fixupReference;
2355 if (callbacks ==
null)
2360 types.
Add(xmlQualifiedName, typeof(
object));
2362 typesReverse.
Add(typeof(
object), xmlQualifiedName);
2375 if ((obj = ReadArray(name, ns)) ==
null)
2378 if (xmlQualifiedName2 ==
null)
2383 obj = ((xmlSerializationReadCallback ==
null) ?
ReadTypedPrimitive(xmlQualifiedName2, elementCanBeType) : xmlSerializationReadCallback());
2397 callbacks[xmlQualifiedName] = read;
2398 types[xmlQualifiedName] = type;
2399 typesReverse[type] = xmlQualifiedName;
2419 private object ReadXmlNodes(
bool elementCanBeType)
2426 string text2 =
null;
2428 int lineNumber = -1;
2429 int linePosition = -1;
2435 xmlNode = xmlAttribute;
2441 GetCurrentPosition(out lineNumber, out linePosition);
2442 XmlElement xmlElement = xmlNode as XmlElement;
2452 int num2 = value.LastIndexOf(
':');
2453 text = ((num2 >= 0) ? value.Substring(num2 + 1) : value);
2457 arrayList.
Add(xmlAttribute2);
2458 xmlElement?.SetAttributeNode(xmlAttribute2);
2460 if (elementCanBeType && text ==
null)
2463 text2 = namespaceURI;
2465 xmlAttribute3.
Value = name;
2466 arrayList.
Add(xmlAttribute3);
2468 if (text ==
"anyType" && ((
object)text2 == schemaNsID || (
object)text2 == schemaNs1999ID || (
object)text2 == schemaNs2000ID))
2481 int whileIterations = 0;
2486 arrayList.
Add(xmlNode2);
2487 xmlElement?.AppendChild(xmlNode2);
2493 if (arrayList.
Count <= num)
2495 return new object();
2497 XmlNode[] result = (XmlNode[])arrayList.
ToArray(typeof(XmlNode));
2508 if (!checkDeserializeAdvances)
2513 if ((whileIterations & 0x80) == 128)
static CultureInfo InvariantCulture
Gets the T:System.Globalization.CultureInfo object that is culture-independent (invariant).
bool IsPrimitive
Gets a value indicating whether the T:System.Type is one of the primitive types.
abstract string BaseURI
When overridden in a derived class, gets the base URI of the current node.
Allows the T:System.Xml.Serialization.XmlSerializer to recognize a type when it serializes or deseria...
bool GetNullAttr()
Determines whether the XML element where the T:System.Xml.XmlReader is currently positioned has a nul...
void Referenced(object o)
Stores an object to be deserialized from a SOAP-encoded multiRef element.
Represents an XML document. You can use this class to load, validate, edit, add, and position XML in ...
void AddFixup(CollectionFixup fixup)
Stores an object that contains a callback method that will be called, as necessary,...
void AddFixup(Fixup fixup)
Stores an object that contains a callback method instance that will be called, as necessary,...
The exception that is thrown when a null reference (Nothing in Visual Basic) is passed to a method th...
abstract string LookupNamespace(string prefix)
When overridden in a derived class, resolves a namespace prefix in the current element's scope.
static DateTime ToDate(string value)
Produces a T:System.DateTime object from an input string.
Exception CreateUnknownNodeException()
Creates an T:System.InvalidOperationException that indicates that the current position of T:System....
virtual void Add(object key, object value)
Adds an element with the specified key and value into the T:System.Collections.Hashtable.
object ReadReferencingElement(string name, string ns, out string fixupReference)
Deserializes an object from an XML element in a SOAP message that contains a reference to a multiRef ...
Array ShrinkArray(Array a, int length, Type elementType, bool isNullable)
Ensures that a given array, or a copy, is no larger than a specified length.
object ReadTypedPrimitive(XmlQualifiedName type)
Gets the value of the XML node at which the T:System.Xml.XmlReader is currently positioned.
static DateTime ToTime(string value)
Produces a T:System.DateTime from a string that represents the time.
abstract bool MoveToElement()
When overridden in a derived class, moves to the element that contains the current attribute node.
void UnknownNode(object o, string qnames)
Raises an E:System.Xml.Serialization.XmlSerializer.UnknownNode event for the current position of the ...
void ReadReferencedElements()
Deserializes objects from the SOAP-encoded multiRef elements in a SOAP message.
abstract string LocalName
When overridden in a derived class, gets the local name of the current node.
abstract string FullName
Gets the fully qualified name of the type, including its namespace but not its assembly.
void CheckReaderCount(ref int whileIterations, ref int readerCount)
Checks whether the deserializer has advanced.
StringComparison
Specifies the culture, case, and sort rules to be used by certain overloads of the M:System....
Exception CreateBadDerivationException(string xsdDerived, string nsDerived, string xsdBase, string nsBase, string clrDerived, string clrBase)
Populates an object from its XML representation at the current location of the T:System....
IXmlSerializable ReadSerializable(IXmlSerializable serializable, bool wrappedAny)
This method supports the .NET Framework infrastructure and is not intended to be used directly from y...
void UnknownAttribute(object o, XmlAttribute attr)
Raises an E:System.Xml.Serialization.XmlSerializer.UnknownAttribute event for the current position of...
virtual void Skip()
Skips the children of the current node.
void FixupArrayRefs(object fixup)
Fills in the values of a SOAP-encoded array whose data type maps to a .NET Framework reference type.
XmlElement CreateElement(string name)
Creates an element with the specified name.
XmlSerializationFixupCallback Callback
Gets the callback method that creates an instance of the T:System.Xml.Serialization....
int GetArrayLength(string name, string ns)
Gets the length of the SOAP-encoded array where the T:System.Xml.XmlReader is currently positioned.
virtual int Count
Gets the number of elements actually contained in the T:System.Collections.ArrayList.
Provides data for the E:System.Xml.Serialization.XmlSerializer.UnknownNode event.
abstract void InitCallbacks()
Initializes callback methods that populate objects that map to SOAP-encoded XML data.
virtual XmlNode ReadNode(XmlReader reader)
Creates an T:System.Xml.XmlNode object based on the information in the T:System.Xml....
static Assembly ResolveDynamicAssembly(string assemblyFullName)
Gets a dynamically generated assembly by name.
The exception that is thrown for invalid casting or explicit conversion.
Represents an attribute. Valid and default values for the attribute are defined in a document type de...
int ReaderCount
Gets the current count of the T:System.Xml.XmlReader.
Exception CreateAbstractTypeException(string name, string ns)
Creates an T:System.InvalidOperationException that indicates that an object being deserialized should...
static DateTime ToDateTime(string value)
Produces a T:System.DateTime object from an input string.
abstract string NamespaceURI
When overridden in a derived class, gets the namespace URI (as defined in the W3C Namespace specifica...
virtual XmlNodeType MoveToContent()
Checks whether the current node is a content (non-white space text, CDATA, Element,...
void UnknownNode(object o)
Raises an E:System.Xml.Serialization.XmlSerializer.UnknownNode event for the current position of the ...
static string DecodeName(string name)
Decodes a name. This method does the reverse of the M:System.Xml.XmlConvert.EncodeName(System....
Represents an instant in time, typically expressed as a date and time of day. To browse the ....
static string ToXmlName(string value)
Decodes an XML name.
XmlNodeType
Specifies the type of node.
XmlDocument Document
Gets the XML document object into which the XML document is being deserialized.
object ReadReferencingElement(string name, string ns, bool elementCanBeType, out string fixupReference)
Deserializes an object from an XML element in a SOAP message that contains a reference to a multiRef ...
string Namespace
Gets a string representation of the namespace of the T:System.Xml.XmlQualifiedName.
XmlQualifiedName GetXsiType()
Gets the value of the xsi:type attribute for the XML element at the current location of the T:System....
bool DecodeName
Gets or sets a value that determines whether XML strings are translated into valid ....
Array EnsureArrayIndex(Array a, int index, Type elementType)
Ensures that a given array, or a copy, is large enough to contain a specified index.
abstract XmlNodeType NodeType
When overridden in a derived class, gets the type of the current node.
Exception CreateUnknownTypeException(XmlQualifiedName type)
Creates an T:System.InvalidOperationException that indicates that a type is unknown.
Controls deserialization by the T:System.Xml.Serialization.XmlSerializer class.
void UnreferencedObject(string id, object o)
Raises an E:System.Xml.Serialization.XmlSerializer.UnreferencedObject event for the current position ...
static string ToXmlNCName(string value)
Decodes an XML name.
XmlNode ReadXmlNode(bool wrapped)
Instructs the T:System.Xml.XmlReader to read the XML node at its current position.
Represents a reader that provides fast, noncached, forward-only access to XML data....
virtual XmlNode ImportNode(XmlNode node, bool deep)
Imports a node from another document to the current document.
override string NamespaceURI
Gets the namespace URI of this node.
XmlSerializationCollectionFixupCallback Callback
Gets the callback method that instantiates the T:System.Xml.Serialization.XmlSerializationCollectionF...
virtual int ReadElementContentAsBinHex(byte[] buffer, int index, int count)
Reads the element and decodes the BinHex content.
object ReadReferencedElement(string name, string ns)
Deserializes an object from a SOAP-encoded multiRef XML element.
byte [] ToByteArrayHex(bool isNull)
Instructs the T:System.Xml.XmlReader to read the string value at its current position and return it a...
bool IsArray
Gets a value that indicates whether the type is an array.
object Collection
Gets the object collection for the callback method.
string Name
Gets a string representation of the qualified name of the T:System.Xml.XmlQualifiedName.
virtual string Name
When overridden in a derived class, gets the qualified name of the current node.
static long ToEnum(string value, Hashtable h, string typeName)
Produces a numeric enumeration value from a string that consists of delimited identifiers that repres...
static byte [] ToByteArrayBase64(string value)
Produces a base-64 byte array from an input string.
void UnknownElement(object o, XmlElement elem, string qnames)
Raises an E:System.Xml.Serialization.XmlSerializer.UnknownElement event for the current position of t...
Exception CreateUnknownConstantException(string value, Type enumType)
Creates an T:System.InvalidOperationException that indicates that an enumeration value is not valid.
Exception CreateReadOnlyCollectionException(string name)
Creates an T:System.InvalidOperationException that indicates that a SOAP-encoded collection type cann...
Represents a collection of key/value pairs that are organized based on the hash code of the key....
virtual void ReadEndElement()
Checks that the current content node is an end tag and advances the reader to the next node.
byte [] ToByteArrayBase64(bool isNull)
Instructs the T:System.Xml.XmlReader to read the string value at its current position and return it a...
void ReadXml(XmlReader reader)
Generates an object from its XML representation.
Provides data for the E:System.Xml.Serialization.XmlSerializer.UnknownElement event.
string ReadString(string value)
Produces the result of a call to the M:System.Xml.XmlReader.ReadString method appended to the input v...
abstract void InitIDs()
Stores element and attribute names in a T:System.Xml.NameTable object.
Handles the XML elements used to configure XML serialization.
Represents an assembly, which is a reusable, versionable, and self-describing building block of a com...
Fixup(object o, XmlSerializationFixupCallback callback, string[] ids)
Initializes a new instance of the T:System.Xml.Serialization.XmlSerializationReader....
Exception CreateInvalidCastException(Type type, object value)
Creates an T:System.InvalidCastException that indicates that an explicit reference conversion failed.
virtual int ReadElementContentAsBase64(byte[] buffer, int index, int count)
Reads the element and decodes the Base64 content.
void AddTarget(string id, object o)
Stores an object that is being deserialized from a SOAP-encoded multiRef element for later access thr...
bool IsXmlnsAttribute(string name)
Determines whether an XML attribute name indicates an XML namespace.
Provides methods for creating, manipulating, searching, and sorting arrays, thereby serving as the ba...
Represents type declarations: class types, interface types, array types, value types,...
static char ToChar(string value)
Produces a T:System.Char object from an input string.
bool IsReturnValue
Gets or sets a value that should be true for a SOAP 1.1 return value.
XmlAttribute CreateAttribute(string name)
Creates an T:System.Xml.XmlAttribute with the specified P:System.Xml.XmlDocument.Name.
Represents an XML qualified name.
abstract string Name
Gets the name of the current member.
DateTime IConvertible. ToDateTime(IFormatProvider provider)
Returns the current T:System.DateTime object.
XmlReader Reader
Gets the T:System.Xml.XmlReader object that is being used by T:System.Xml.Serialization....
object ReadTypedNull(XmlQualifiedName type)
Reads an XML element that allows null values (xsi:nil = 'true') and returns a generic T:System....
object CollectionItems
Gets the array into which the callback method copies a collection.
object GetTarget(string id)
Gets an object that is being deserialized from a SOAP-encoded multiRef element and that was stored ea...
abstract bool MoveToNextAttribute()
When overridden in a derived class, moves to the next attribute.
delegate object XmlSerializationReadCallback()
Delegate used by the T:System.Xml.Serialization.XmlSerializer class for deserialization of types from...
string ReadString(string value, bool trim)
Returns the result of a call to the M:System.Xml.XmlReader.ReadString method of the T:System....
virtual int Add(object value)
Adds an object to the end of the T:System.Collections.ArrayList.
object Source
Gets or sets the object that contains other objects whose values get filled in by the callback implem...
abstract string GetAttribute(string name)
When overridden in a derived class, gets the value of the attribute with the specified P:System....
Exception CreateInaccessibleConstructorException(string typeName)
Creates an T:System.InvalidOperationException that indicates that an object being deserialized cannot...
XmlQualifiedName ToXmlQualifiedName(string value)
Obtains an T:System.Xml.XmlQualifiedName from a name that may contain a prefix.
void ReadEndElement()
Makes the T:System.Xml.XmlReader read an XML end tag.
The exception that is thrown when one of the arguments provided to a method is not valid.
override string LocalName
Gets the local name of the node.
abstract bool Read()
When overridden in a derived class, reads the next node from the stream.
delegate void XmlSerializationFixupCallback(object fixup)
Delegate used by the T:System.Xml.Serialization.XmlSerializer class for deserialization of SOAP-encod...
XmlQualifiedName ReadNullableQualifiedName()
Instructs the T:System.Xml.XmlReader to read the fully qualified name of the element where it is curr...
object ReadReferencingElement(out string fixupReference)
Deserializes an object from an XML element in a SOAP message that contains a reference to a multiRef ...
virtual void ReadStartElement()
Checks that the current node is an element and advances the reader to the next node.
string [] Ids
Gets or sets an array of keys for the objects that belong to the P:System.Xml.Serialization....
virtual string ReadElementString()
Reads a text-only element. However, we recommend that you use the M:System.Xml.XmlReader....
bool ReadNull()
Instructs the T:System.Xml.XmlReader to read the current XML element if the element has a null attrib...
Holds an T:System.Xml.Serialization.XmlSerializationCollectionFixupCallback delegate instance,...
static void Copy(Array sourceArray, Array destinationArray, int length)
Copies a range of elements from an T:System.Array starting at the first element and pastes them into ...
static string ToXmlNmTokens(string value)
Decodes an XML name.
string ReadNullableString()
Instructs the T:System.Xml.XmlReader to read a simple, text-only XML element that could be null.
string CollapseWhitespace(string value)
Removes all occurrences of white space characters from the beginning and end of the specified string.
virtual bool Contains(object key)
Determines whether the T:System.Collections.Hashtable contains a specific key.
abstract string Add(char[] array, int offset, int length)
When overridden in a derived class, atomizes the specified string and adds it to the XmlNameTable.
Represents errors that occur during application execution.To browse the .NET Framework source code fo...
Provides data for the E:System.Xml.Serialization.XmlSerializer.UnknownAttribute event.
object Value
Gets or sets the value in the key/value pair.
Holds an T:System.Xml.Serialization.XmlSerializationFixupCallback delegate instance,...
Exception CreateCtorHasSecurityException(string typeName)
Creates an T:System.InvalidOperationException that indicates that an object being deserialized cannot...
static bool ToBoolean(string s)
Converts the T:System.String to a T:System.Boolean equivalent.
abstract bool IsEmptyElement
When overridden in a derived class, gets a value indicating whether the current node is an empty elem...
virtual string ReadString()
When overridden in a derived class, reads the contents of an element or text node as a string....
int Length
Gets the total number of elements in all the dimensions of the T:System.Array.
static string ToXmlNmToken(string value)
Decodes an XML name.
IXmlSerializable ReadSerializable(IXmlSerializable serializable)
Populates an object from its XML representation at the current location of the T:System....
CollectionFixup(object collection, XmlSerializationCollectionFixupCallback callback, object collectionItems)
Initializes a new instance of the T:System.Xml.Serialization.XmlSerializationReader....
virtual XmlNode AppendChild(XmlNode newChild)
Adds the specified node to the end of the list of child nodes, of this node.
void UnknownElement(object o, XmlElement elem)
Raises an E:System.Xml.Serialization.XmlSerializer.UnknownElement event for the current position of t...
Fixup(object o, XmlSerializationFixupCallback callback, int count)
Initializes a new instance of the T:System.Xml.Serialization.XmlSerializationReader....
The exception that is thrown when a method call is invalid for the object's current state.
XmlDocument ReadXmlDocument(bool wrapped)
Instructs the T:System.Xml.XmlReader to read an XML document root element at its current position.
XmlQualifiedName ReadElementQualifiedName()
Makes the T:System.Xml.XmlReader read the fully qualified name of the element where it is currently p...
object Key
Gets or sets the key in the key/value pair.
Provides data for the known, but unreferenced, object found in an encoded SOAP XML stream during dese...
void UnknownAttribute(object o, XmlAttribute attr, string qnames)
Raises an E:System.Xml.Serialization.XmlSerializer.UnknownAttribute event for the current position of...
object ReadReferencedElement()
Deserializes an object from a SOAP-encoded multiRef XML element.
void AddReadCallback(string name, string ns, Type type, XmlSerializationReadCallback read)
Stores an implementation of the T:System.Xml.Serialization.XmlSerializationReadCallback delegate and ...
Contains fields that can be used to pass event delegates to a thread-safe Overload:System....
bool ReadReference(out string fixupReference)
Reads the value of the href attribute (ref attribute for SOAP 1.2) that is used to refer to an XML el...
Provides information about a specific culture (called a locale for unmanaged code development)....
static byte [] ToByteArrayHex(string value)
Produces a hexadecimal byte array from an input string.
override string Value
Gets or sets the value of the node.
abstract string Value
When overridden in a derived class, gets the text value of the current node.
The exception that is thrown when a call is made to the M:System.Threading.Thread....
An abstract class that is the base class for T:System.Xml.Serialization.XmlSerializationReader and T:...
Defines a dictionary key/value pair that can be set or retrieved.
void ParseWsdlArrayType(XmlAttribute attr)
Sets the value of the XML attribute if it is of type arrayType from the Web Services Description Lang...
Provides custom formatting for XML serialization and deserialization.
Represents a single node in the XML document.
delegate void XmlSerializationCollectionFixupCallback(object collection, object collectionItems)
Delegate used by the T:System.Xml.Serialization.XmlSerializer class for deserialization of SOAP-encod...
abstract XmlNodeType NodeType
Gets the type of the current node, when overridden in a derived class.
static unsafe Array CreateInstance(Type elementType, int length)
Creates a one-dimensional T:System.Array of the specified T:System.Type and length,...
Exception CreateMissingIXmlSerializableType(string name, string ns, string clrType)
Creates an T:System.InvalidOperationException that indicates that a derived type that is mapped to an...
abstract XmlNameTable NameTable
When overridden in a derived class, gets the T:System.Xml.XmlNameTable associated with this implement...
virtual object [] ToArray()
Copies the elements of the T:System.Collections.ArrayList to a new T:System.Object array.
Encodes and decodes XML names, and provides methods for converting between common language runtime ty...
Implements the T:System.Collections.IList interface using an array whose size is dynamically increase...
Exception CreateInvalidCastException(Type type, object value, string id)
Creates an T:System.InvalidCastException that indicates that an explicit reference conversion failed.