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

◆ ImportArrayLikeMapping()

ArrayMapping System.Xml.Serialization.SoapReflectionImporter.ImportArrayLikeMapping ( ArrayModel model,
RecursionLimiter limiter )
inlineprivate

Definition at line 434 of file SoapReflectionImporter.cs.

435 {
436 ArrayMapping arrayMapping = new ArrayMapping();
437 arrayMapping.IsSoap = true;
438 TypeMapping typeMapping = ImportTypeMapping(model.Element, limiter);
439 if (typeMapping.TypeDesc.IsValueType && !typeMapping.TypeDesc.IsPrimitive && !typeMapping.TypeDesc.IsEnum)
440 {
441 throw new NotSupportedException(System.SR.Format(System.SR.XmlRpcArrayOfValueTypes, model.TypeDesc.FullName));
442 }
443 arrayMapping.TypeDesc = model.TypeDesc;
444 arrayMapping.Elements = new ElementAccessor[1] { CreateElementAccessor(typeMapping, arrayMapping.Namespace) };
446 ArrayMapping arrayMapping2 = (ArrayMapping)_types[arrayMapping.TypeName, arrayMapping.Namespace];
447 if (arrayMapping2 != null)
448 {
449 ArrayMapping next = arrayMapping2;
450 while (arrayMapping2 != null)
451 {
452 if (arrayMapping2.TypeDesc == model.TypeDesc)
453 {
454 return arrayMapping2;
455 }
457 }
458 arrayMapping.Next = next;
459 _types[arrayMapping.TypeName, arrayMapping.Namespace] = arrayMapping;
460 return arrayMapping;
461 }
463 _types.Add(arrayMapping.TypeName, arrayMapping.Namespace, arrayMapping);
464 IncludeTypes(model.Type);
465 return arrayMapping;
466 }
static string Format(string resourceFormat, object p1)
Definition SR.cs:118
static string XmlRpcArrayOfValueTypes
Definition SR.cs:1630
Definition SR.cs:7
void Add(XmlQualifiedName qname, object value)
Definition NameTable.cs:57
static ElementAccessor CreateElementAccessor(TypeMapping mapping, string ns)
void IncludeTypes(ICustomAttributeProvider provider)
void AddTypeMapping(TypeMapping typeMapping)
Definition TypeScope.cs:930

References System.Xml.Serialization.SoapReflectionImporter._types, System.Xml.Serialization.SoapReflectionImporter._typeScope, System.Xml.Serialization.NameTable.Add(), System.Xml.Serialization.TypeScope.AddTypeMapping(), System.Xml.Serialization.SoapReflectionImporter.CreateElementAccessor(), System.Xml.Dictionary, System.SR.Format(), System.Xml.Serialization.SoapReflectionImporter.ImportTypeMapping(), System.Xml.Serialization.SoapReflectionImporter.IncludeTypes(), System.Xml.Serialization.SoapReflectionImporter.SetArrayMappingType(), and System.SR.XmlRpcArrayOfValueTypes.

Referenced by System.Xml.Serialization.SoapReflectionImporter.ImportTypeMapping().