Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ GenerateEncodedMembersElement()

object System.Xml.Serialization.ReflectionXmlSerializationReader.GenerateEncodedMembersElement ( XmlMembersMapping xmlMembersMapping)
inlineprivate

Definition at line 337 of file ReflectionXmlSerializationReader.cs.

338 {
339 ElementAccessor accessor = xmlMembersMapping.Accessor;
340 MembersMapping membersMapping = (MembersMapping)accessor.Mapping;
341 MemberMapping[] members = membersMapping.Members;
342 bool hasWrapperElement = membersMapping.HasWrapperElement;
343 bool writeAccessors = membersMapping.WriteAccessors;
344 base.Reader.MoveToContent();
345 object[] p = new object[members.Length];
347 bool flag = true;
349 {
350 base.Reader.MoveToContent();
351 while (base.Reader.NodeType == XmlNodeType.Element)
352 {
353 string attribute = base.Reader.GetAttribute("root", "http://schemas.xmlsoap.org/soap/encoding/");
354 if (attribute == null || XmlConvert.ToBoolean(attribute))
355 {
356 break;
357 }
359 base.Reader.MoveToContent();
360 }
361 if (membersMapping.ValidateRpcWrapperElement)
362 {
363 string name = accessor.Name;
364 string ns = ((accessor.Form == XmlSchemaForm.Qualified) ? accessor.Namespace : string.Empty);
365 if (!XmlNodeEqual(base.Reader, name, ns))
366 {
368 }
369 }
370 flag = base.Reader.IsEmptyElement;
371 base.Reader.ReadStartElement();
372 }
373 Member[] array = new Member[members.Length];
374 for (int i = 0; i < members.Length; i++)
375 {
376 int index = i;
377 MemberMapping memberMapping = members[index];
378 Member member = new Member(memberMapping);
380 {
381 p[index] = value;
382 };
383 array[index] = member;
384 if (memberMapping.CheckSpecified != SpecifiedAccessor.ReadWrite)
385 {
386 continue;
387 }
388 string text = memberMapping.Name + "Specified";
389 for (int j = 0; j < members.Length; j++)
390 {
391 if (members[j].Name == text)
392 {
395 {
397 };
398 break;
399 }
400 }
401 }
403 if (array.Length != 0 && array[0].Mapping.IsReturnValue)
404 {
405 base.IsReturnValue = true;
406 }
409 {
411 }
412 base.Reader.MoveToContent();
413 while (base.Reader.NodeType != XmlNodeType.EndElement && base.Reader.NodeType != 0)
414 {
416 {
417 UnknownNode(p);
418 }));
420 {
421 UnknownNode(p);
422 }, null, null, fixup, list);
423 base.Reader.MoveToContent();
424 }
425 if (!flag)
426 {
428 }
429 if (list != null)
430 {
431 foreach (CheckTypeSource item in list)
432 {
433 bool isReferenced = true;
434 bool isObject = item.IsObject;
435 object obj = (isObject ? item.RefObject : GetTarget((string)item.RefObject));
436 if (obj != null)
437 {
438 CheckTypeSource checkTypeSource = new CheckTypeSource
439 {
440 RefObject = obj,
441 Type = obj.GetType(),
442 Id = null
443 };
445 {
446 isReferenced = false;
448 if (isObject && isReferenced)
449 {
451 }
452 }
453 }
454 }
456 return p;
457 [RequiresUnreferencedCode("calls ReadReferencedElement")]
458 void Wrapper(object _)
459 {
460 if (base.Reader.GetAttribute("id", null) != null)
461 {
463 }
464 else
465 {
466 UnknownNode(p);
467 }
468 }
469 }
void WriteMemberElementsIf(Member[] expectedMembers, Member anyElementMember, UnknownNodeAction elementElseAction, Fixup fixup=null, CheckTypeSource checkTypeSource=null)
void WriteMemberElements(Member[] expectedMembers, UnknownNodeAction elementElseAction, UnknownNodeAction elseAction, Member anyElement, Member anyText, Fixup fixup=null, List< CheckTypeSource > checkTypeHrefsSource=null)
delegate void UnknownNodeAction(object o)

References System.array, System.Xml.Serialization.XmlSerializationReader.CreateUnknownNodeException(), System.Xml.Dictionary, System.Xml.Serialization.XmlSerializationReader.GetTarget(), System.Type.GetType(), System.Xml.Schema.Id, System.index, System.Xml.Serialization.ReflectionXmlSerializationReader.InitializeValueTypes(), System.item, System.list, System.Xml.Name, System.obj, System.Xml.Serialization.XmlSerializationReader.ReadEndElement(), System.Xml.Serialization.XmlSerializationReader.ReadReferencedElement(), System.Xml.Serialization.XmlSerializationReader.ReadReferencedElements(), System.Xml.Serialization.XmlSerializationReader.Referenced(), System.text, System.Xml.XmlConvert.ToBoolean(), System.Xml.Serialization.XmlSerializationReader.UnknownNode(), System.Xml.Serialization.UnknownNodeAction(), System.value, System.Xml.Serialization.ReflectionXmlSerializationReader.WriteMemberElements(), System.Xml.Serialization.ReflectionXmlSerializationReader.WriteMemberElementsIf(), System.Xml.Serialization.ReflectionXmlSerializationReader.WriteMemberFixupBegin(), and System.Xml.Serialization.ReflectionXmlSerializationReader.XmlNodeEqual().

Referenced by System.Xml.Serialization.ReflectionXmlSerializationReader.GenerateMembersElement().