Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
SoapReflectionImporter.cs
Go to the documentation of this file.
6
8
10{
11 private readonly TypeScope _typeScope;
12
14
15 private readonly NameTable _types = new NameTable();
16
17 private readonly NameTable _nullables = new NameTable();
18
20
21 private readonly string _defaultNs;
22
23 private readonly ModelScope _modelScope;
24
26 : this(null, null)
27 {
28 }
29
30 public SoapReflectionImporter(string? defaultNamespace)
31 : this(null, defaultNamespace)
32 {
33 }
34
39
41 {
42 if (defaultNamespace == null)
43 {
44 defaultNamespace = string.Empty;
45 }
46 if (attributeOverrides == null)
47 {
49 }
51 _defaultNs = defaultNamespace;
52 _typeScope = new TypeScope();
54 }
55
56 [RequiresUnreferencedCode("Members from serialized types may be trimmed if not referenced directly")]
61
62 [RequiresUnreferencedCode("calls IncludeType")]
64 {
65 object[] customAttributes = provider.GetCustomAttributes(typeof(SoapIncludeAttribute), inherit: false);
66 for (int i = 0; i < customAttributes.Length; i++)
67 {
69 }
70 }
71
72 [RequiresUnreferencedCode("Members from serialized types may be trimmed if not referenced directly")]
73 public void IncludeType(Type type)
74 {
76 }
77
78 [RequiresUnreferencedCode("Members from serialized types may be trimmed if not referenced directly")]
83
84 [RequiresUnreferencedCode("Members from serialized types may be trimmed if not referenced directly")]
86 {
87 return ImportTypeMapping(type, null);
88 }
89
90 [RequiresUnreferencedCode("Members from serialized types may be trimmed if not referenced directly")]
105
106 [RequiresUnreferencedCode("Members from serialized types may be trimmed if not referenced directly")]
107 public XmlMembersMapping ImportMembersMapping(string? elementName, string? ns, XmlReflectionMember[] members)
108 {
109 return ImportMembersMapping(elementName, ns, members, hasWrapperElement: true, writeAccessors: true, validate: false);
110 }
111
112 [RequiresUnreferencedCode("Members from serialized types may be trimmed if not referenced directly")]
114 {
115 return ImportMembersMapping(elementName, ns, members, hasWrapperElement, writeAccessors, validate: false);
116 }
117
118 [RequiresUnreferencedCode("Members from serialized types may be trimmed if not referenced directly")]
123
124 [RequiresUnreferencedCode("Members from serialized types may be trimmed if not referenced directly")]
139
140 private Exception ReflectionException(string context, Exception e)
141 {
143 }
144
146 {
148 if (soapAttributes != null)
149 {
150 return soapAttributes;
151 }
152 return new SoapAttributes(type);
153 }
154
156 {
158 if (soapAttributes != null)
159 {
160 return soapAttributes;
161 }
162 return new SoapAttributes(memberInfo);
163 }
164
165 [RequiresUnreferencedCode("calls ImportTypeMapping")]
170
171 [RequiresUnreferencedCode("Calls TypeDesc")]
173 {
174 if (dataType.Length > 0)
175 {
176 if (!model.TypeDesc.IsPrimitive)
177 {
178 throw new InvalidOperationException(System.SR.Format(System.SR.XmlInvalidDataTypeUsage, dataType, "SoapElementAttribute.DataType"));
179 }
180 TypeDesc typeDesc = _typeScope.GetTypeDesc(dataType, "http://www.w3.org/2001/XMLSchema");
181 if (typeDesc == null)
182 {
183 throw new InvalidOperationException(System.SR.Format(System.SR.XmlInvalidXsdDataType, dataType, "SoapElementAttribute.DataType", new XmlQualifiedName(dataType, "http://www.w3.org/2001/XMLSchema").ToString()));
184 }
185 if (model.TypeDesc.FullName != typeDesc.FullName)
186 {
187 throw new InvalidOperationException(System.SR.Format(System.SR.XmlDataTypeMismatch, dataType, "SoapElementAttribute.DataType", model.TypeDesc.FullName));
188 }
189 }
190 SoapAttributes attributes = GetAttributes(model.Type);
191 if (((uint)attributes.GetSoapFlags() & 0xFFFFFFFDu) != 0)
192 {
194 }
195 switch (model.TypeDesc.Kind)
196 {
197 case TypeKind.Enum:
199 case TypeKind.Primitive:
201 case TypeKind.Array:
202 case TypeKind.Collection:
203 case TypeKind.Enumerable:
205 case TypeKind.Root:
206 case TypeKind.Struct:
207 case TypeKind.Class:
208 if (model.TypeDesc.IsOptionalValue)
209 {
210 TypeDesc baseTypeDesc = model.TypeDesc.BaseTypeDesc;
212 string ns = _defaultNs;
213 if (attributes2.SoapType != null && attributes2.SoapType.Namespace != null)
214 {
215 ns = attributes2.SoapType.Namespace;
216 }
217 TypeDesc typeDesc2 = (string.IsNullOrEmpty(dataType) ? model.TypeDesc.BaseTypeDesc : _typeScope.GetTypeDesc(dataType, "http://www.w3.org/2001/XMLSchema"));
218 string typeName = (string.IsNullOrEmpty(dataType) ? model.TypeDesc.BaseTypeDesc.Name : dataType);
220 if (typeMapping == null)
221 {
223 }
224 return CreateNullableMapping(typeMapping, model.TypeDesc.Type);
225 }
227 default:
229 }
230 }
231
232 [RequiresUnreferencedCode("calls GetTypeDesc")]
245
246 [RequiresUnreferencedCode("calls CreateRootMapping")]
248 {
249 if (_root == null)
250 {
253 }
254 return _root;
255 }
256
257 private TypeMapping GetTypeMapping(string typeName, string ns, TypeDesc typeDesc)
258 {
259 TypeMapping typeMapping = (TypeMapping)_types[typeName, ns];
260 if (typeMapping == null)
261 {
262 return null;
263 }
264 if (typeMapping.TypeDesc != typeDesc)
265 {
266 throw new InvalidOperationException(System.SR.Format(System.SR.XmlTypesDuplicate, typeDesc.FullName, typeMapping.TypeDesc.FullName, typeName, ns));
267 }
268 return typeMapping;
269 }
270
272 {
273 TypeDesc nullableTypeDesc = baseMapping.TypeDesc.GetNullableTypeDesc(type);
276 if (typeMapping != null)
277 {
279 {
282 {
283 return nullableMapping;
284 }
285 if (nullableMapping.BaseMapping == baseMapping)
286 {
287 return nullableMapping;
288 }
290 }
292 {
294 }
295 }
304 return nullableMapping;
305 }
306
307 [RequiresUnreferencedCode("calls GetRootMapping")]
309 {
310 if (model.TypeDesc.Kind == TypeKind.Root)
311 {
312 return GetRootMapping();
313 }
314 SoapAttributes attributes = GetAttributes(model.Type);
315 string text = _defaultNs;
316 if (attributes.SoapType != null && attributes.SoapType.Namespace != null)
317 {
318 text = attributes.SoapType.Namespace;
319 }
320 string name = XsdTypeName(model.Type, attributes, model.TypeDesc.Name);
321 name = XmlConvert.EncodeLocalName(name);
323 if (structMapping == null)
324 {
327 structMapping.TypeDesc = model.TypeDesc;
330 if (attributes.SoapType != null)
331 {
333 }
336 if (limiter.IsExceededLimit)
337 {
338 limiter.DeferredWorkItems.Add(new ImportStructWorkItem(model, structMapping));
339 return structMapping;
340 }
341 limiter.Depth++;
343 while (limiter.DeferredWorkItems.Count > 0)
344 {
348 {
349 limiter.DeferredWorkItems.RemoveAt(index);
350 }
351 }
352 limiter.Depth--;
353 }
354 return structMapping;
355 }
356
357 [RequiresUnreferencedCode("calls GetTypeModel")]
359 {
360 if (mapping.IsFullyInitialized)
361 {
362 return true;
363 }
364 if (model.TypeDesc.BaseTypeDesc != null)
365 {
367 int num = limiter.DeferredWorkItems.IndexOf(mapping.BaseMapping);
368 if (num >= 0)
369 {
370 if (!limiter.DeferredWorkItems.Contains(mapping))
371 {
372 limiter.DeferredWorkItems.Add(new ImportStructWorkItem(model, mapping));
373 }
375 if (num < num2)
376 {
377 ImportStructWorkItem value = limiter.DeferredWorkItems[num];
378 limiter.DeferredWorkItems[num] = limiter.DeferredWorkItems[num2];
379 limiter.DeferredWorkItems[num2] = value;
380 }
381 return false;
382 }
384 }
386 MemberInfo[] memberInfos = model.GetMemberInfos();
387 foreach (MemberInfo memberInfo in memberInfos)
388 {
390 {
391 continue;
392 }
394 if (attributes.SoapIgnore)
395 {
396 continue;
397 }
398 FieldModel fieldModel = model.GetFieldModel(memberInfo);
399 if (fieldModel == null)
400 {
401 continue;
402 }
404 if (memberMapping == null)
405 {
406 continue;
407 }
408 if (!memberMapping.TypeDesc.IsPrimitive && !memberMapping.TypeDesc.IsEnum && !memberMapping.TypeDesc.IsOptionalValue)
409 {
410 if (model.TypeDesc.IsValueType)
411 {
413 }
414 if (memberMapping.TypeDesc.IsValueType)
415 {
417 }
418 }
419 if (mapping.BaseMapping == null || !mapping.BaseMapping.Declares(memberMapping, mapping.TypeName))
420 {
421 list.Add(memberMapping);
422 }
423 }
424 mapping.Members = list.ToArray();
425 if (mapping.BaseMapping == null)
426 {
428 }
430 return true;
431 }
432
433 [RequiresUnreferencedCode("calls IncludeTypes")]
435 {
437 arrayMapping.IsSoap = true;
439 if (typeMapping.TypeDesc.IsValueType && !typeMapping.TypeDesc.IsPrimitive && !typeMapping.TypeDesc.IsEnum)
440 {
442 }
443 arrayMapping.TypeDesc = model.TypeDesc;
447 if (arrayMapping2 != null)
448 {
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 }
467
469 {
470 bool flag = false;
471 TypeMapping typeMapping = ((mapping.Elements.Length != 1) ? null : mapping.Elements[0].Mapping);
472 string text;
473 string identifier;
475 {
476 text = typeMapping.Namespace;
477 identifier = typeMapping.TypeName;
478 }
480 {
481 text = (typeMapping.TypeDesc.IsXsdType ? "http://www.w3.org/2001/XMLSchema" : "http://microsoft.com/wsdl/types/");
482 identifier = typeMapping.TypeDesc.DataType.Name;
483 flag = true;
484 }
486 {
487 if (typeMapping.TypeDesc.IsRoot)
488 {
489 text = "http://www.w3.org/2001/XMLSchema";
490 identifier = "anyType";
491 flag = true;
492 }
493 else
494 {
495 text = typeMapping.Namespace;
496 identifier = typeMapping.TypeName;
497 }
498 }
499 else
500 {
502 {
504 }
505 text = typeMapping.Namespace;
506 identifier = typeMapping.TypeName;
507 }
509 string text2 = "ArrayOf" + identifier;
510 string text3 = (flag ? _defaultNs : text);
511 int num = 1;
513 while (typeMapping2 != null)
514 {
516 {
518 if (AccessorMapping.ElementsMatch(arrayMapping.Elements, mapping.Elements))
519 {
520 break;
521 }
522 }
525 num++;
526 }
529 }
530
532 {
535 if (dataType.Length > 0)
536 {
537 primitiveMapping.TypeDesc = _typeScope.GetTypeDesc(dataType, "http://www.w3.org/2001/XMLSchema");
538 if (primitiveMapping.TypeDesc == null)
539 {
540 primitiveMapping.TypeDesc = _typeScope.GetTypeDesc(dataType, "http://microsoft.com/wsdl/types/");
541 if (primitiveMapping.TypeDesc == null)
542 {
544 }
545 }
546 }
547 else
548 {
550 }
551 primitiveMapping.TypeName = primitiveMapping.TypeDesc.DataType.Name;
552 primitiveMapping.Namespace = (primitiveMapping.TypeDesc.IsXsdType ? "http://www.w3.org/2001/XMLSchema" : "http://microsoft.com/wsdl/types/");
553 return primitiveMapping;
554 }
555
556 [RequiresUnreferencedCode("calls XsdTypeName")]
558 {
559 SoapAttributes attributes = GetAttributes(model.Type);
560 string text = _defaultNs;
561 if (attributes.SoapType != null && attributes.SoapType.Namespace != null)
562 {
563 text = attributes.SoapType.Namespace;
564 }
565 string name = XsdTypeName(model.Type, attributes, model.TypeDesc.Name);
566 name = XmlConvert.EncodeLocalName(name);
568 if (enumMapping == null)
569 {
570 enumMapping = new EnumMapping();
571 enumMapping.IsSoap = true;
572 enumMapping.TypeDesc = model.TypeDesc;
575 enumMapping.IsFlags = model.Type.IsDefined(typeof(FlagsAttribute), inherit: false);
577 _types.Add(name, text, enumMapping);
579 for (int i = 0; i < model.Constants.Length; i++)
580 {
582 if (constantMapping != null)
583 {
585 }
586 }
587 if (list.Count == 0)
588 {
590 }
591 enumMapping.Constants = list.ToArray();
592 }
593 return enumMapping;
594 }
595
597 {
598 SoapAttributes attributes = GetAttributes(model.FieldInfo);
599 if (attributes.SoapIgnore)
600 {
601 return null;
602 }
603 if (((uint)attributes.GetSoapFlags() & 0xFFFFFFFEu) != 0)
604 {
606 }
607 if (attributes.SoapEnum == null)
608 {
610 }
615 return constantMapping;
616 }
617
618 [RequiresUnreferencedCode("calls GetTypeDesc")]
620 {
624 for (int i = 0; i < array.Length; i++)
625 {
626 try
627 {
630 if (xmlReflectionMember.IsReturnValue && writeAccessors)
631 {
632 if (i > 0)
633 {
635 }
637 }
638 array[i] = memberMapping;
639 }
640 catch (Exception ex)
641 {
643 {
644 throw;
645 }
646 throw ReflectionException(xmlReflectionMembers[i].MemberName, ex);
647 }
648 }
652 {
654 }
658 {
660 }
661 return membersMapping;
662 }
663
664 [RequiresUnreferencedCode("Members from serialized types may be trimmed if not referenced directly")]
687
688 [RequiresUnreferencedCode("calls ImportAccessorMapping")]
690 {
691 if (a.SoapIgnore)
692 {
693 return null;
694 }
698 memberMapping.CheckShouldPersist = model.CheckShouldPersist;
699 memberMapping.CheckSpecified = model.CheckSpecified;
700 memberMapping.MemberInfo = model.MemberInfo;
701 memberMapping.CheckSpecifiedMemberInfo = model.CheckSpecifiedMemberInfo;
702 memberMapping.CheckShouldPersistMethodInfo = model.CheckShouldPersistMethodInfo;
703 memberMapping.ReadOnly = model.ReadOnly;
705 return memberMapping;
706 }
707
708 [RequiresUnreferencedCode("calls GetTypeDesc")]
710 {
711 Type fieldType = model.FieldType;
712 string name = model.Name;
714 if (accessor.TypeDesc.IsVoid)
715 {
717 }
718 SoapAttributeFlags soapFlags = a.GetSoapFlags();
719 if ((soapFlags & SoapAttributeFlags.Attribute) == SoapAttributeFlags.Attribute)
720 {
721 if (!accessor.TypeDesc.IsPrimitive && !accessor.TypeDesc.IsEnum)
722 {
724 }
725 if ((soapFlags & SoapAttributeFlags.Attribute) != soapFlags)
726 {
728 }
730 attributeAccessor.Name = Accessor.EscapeQName((a.SoapAttribute == null || a.SoapAttribute.AttributeName.Length == 0) ? name : a.SoapAttribute.AttributeName);
731 attributeAccessor.Namespace = ((a.SoapAttribute == null || a.SoapAttribute.Namespace == null) ? ns : a.SoapAttribute.Namespace);
733 attributeAccessor.Mapping = ImportTypeMapping(_modelScope.GetTypeModel(fieldType), (a.SoapAttribute == null) ? string.Empty : a.SoapAttribute.DataType, limiter);
737 }
738 else
739 {
740 if ((soapFlags & SoapAttributeFlags.Element) != soapFlags)
741 {
743 }
746 elementAccessor.Name = XmlConvert.EncodeLocalName((a.SoapElement == null || a.SoapElement.ElementName.Length == 0) ? name : a.SoapElement.ElementName);
749 elementAccessor.Mapping = ImportTypeMapping(_modelScope.GetTypeModel(fieldType), (a.SoapElement == null) ? string.Empty : a.SoapElement.DataType, limiter);
750 if (a.SoapElement != null)
751 {
752 elementAccessor.IsNullable = a.SoapElement.IsNullable;
753 }
755 }
756 }
757
767
768 [RequiresUnreferencedCode("calls GetTypeDesc")]
770 {
771 if (a.SoapDefaultValue == null || a.SoapDefaultValue == DBNull.Value)
772 {
773 return null;
774 }
775 if (fieldTypeDesc.Kind != TypeKind.Primitive && fieldTypeDesc.Kind != TypeKind.Enum)
776 {
777 a.SoapDefaultValue = null;
778 return a.SoapDefaultValue;
779 }
780 if (fieldTypeDesc.Kind == TypeKind.Enum)
781 {
782 if (fieldTypeDesc != _typeScope.GetTypeDesc(a.SoapDefaultValue.GetType()))
783 {
784 throw new InvalidOperationException(System.SR.Format(System.SR.XmlInvalidDefaultEnumValue, a.SoapDefaultValue.GetType().FullName, fieldTypeDesc.FullName));
785 }
786 string text = Enum.Format(a.SoapDefaultValue.GetType(), a.SoapDefaultValue, "G").Replace(",", " ");
787 string text2 = Enum.Format(a.SoapDefaultValue.GetType(), a.SoapDefaultValue, "D");
788 if (text == text2)
789 {
790 throw new InvalidOperationException(System.SR.Format(System.SR.XmlInvalidDefaultValue, text, a.SoapDefaultValue.GetType().FullName));
791 }
792 return text;
793 }
794 return a.SoapDefaultValue;
795 }
796
797 [RequiresUnreferencedCode("calls GetTypeDesc")]
798 internal string XsdTypeName(Type type)
799 {
800 if (type == typeof(object))
801 {
802 return "anyType";
803 }
805 if (typeDesc.IsPrimitive && typeDesc.DataType != null && typeDesc.DataType.Name != null && typeDesc.DataType.Name.Length > 0)
806 {
807 return typeDesc.DataType.Name;
808 }
810 }
811
812 [RequiresUnreferencedCode("Members from serialized types may be trimmed if not referenced directly")]
813 internal string XsdTypeName(Type type, SoapAttributes a, string name)
814 {
815 string text = name;
816 if (a.SoapType != null && a.SoapType.TypeName.Length > 0)
817 {
818 text = a.SoapType.TypeName;
819 }
820 if (type.IsGenericType && text.Contains('{'))
821 {
822 Type genericTypeDefinition = type.GetGenericTypeDefinition();
823 Type[] genericArguments = genericTypeDefinition.GetGenericArguments();
824 Type[] genericArguments2 = type.GetGenericArguments();
825 for (int i = 0; i < genericArguments.Length; i++)
826 {
827 string text2 = "{" + genericArguments[i]?.ToString() + "}";
828 if (text.Contains(text2))
829 {
831 if (!text.Contains('{'))
832 {
833 break;
834 }
835 }
836 }
837 }
838 return text;
839 }
840}
bool ICollection< KeyValuePair< TKey, TValue > >. Contains(KeyValuePair< TKey, TValue > keyValuePair)
void Add(TKey key, TValue value)
static readonly DBNull Value
Definition DBNull.cs:8
static string Format(Type enumType, object value, string format)
Definition Enum.cs:896
static CultureInfo InvariantCulture
static string XmlInvalidEnumAttribute
Definition SR.cs:1592
static string XmlInvalidDefaultEnumValue
Definition SR.cs:1522
static string XmlInvalidTypeAttributes
Definition SR.cs:1572
static string Format(string resourceFormat, object p1)
Definition SR.cs:118
static string XmlIllegalSoapAttribute
Definition SR.cs:1466
static string XmlNoSerializableMembers
Definition SR.cs:1620
static string XmlInvalidVoid
Definition SR.cs:1598
static string XmlUnsupportedSoapTypeKind
Definition SR.cs:1400
static string XmlInvalidSoapArray
Definition SR.cs:1578
static string XmlInvalidReturnPosition
Definition SR.cs:1594
static string XmlInvalidXsdDataType
Definition SR.cs:1444
static string XmlInvalidDefaultValue
Definition SR.cs:1520
static string XmlDataTypeMismatch
Definition SR.cs:1446
static string XmlRpcArrayOfValueTypes
Definition SR.cs:1630
static string XmlReflectionError
Definition SR.cs:1434
static string XmlRpcRefsInValueType
Definition SR.cs:1628
static string XmlRpcNestedValueType
Definition SR.cs:1626
static string XmlInvalidDataTypeUsage
Definition SR.cs:1442
static string XmlTypesDuplicate
Definition SR.cs:1576
static string XmlInvalidElementAttribute
Definition SR.cs:1596
static string XmlUdeclaredXsdType
Definition SR.cs:1450
Definition SR.cs:7
static bool ElementsMatch(ElementAccessor[] a, ElementAccessor[] b)
static string EscapeQName(string name)
Definition Accessor.cs:172
static string MakePascal(string identifier)
TypeModel GetTypeModel(Type type)
Definition ModelScope.cs:22
void Add(XmlQualifiedName qname, object value)
Definition NameTable.cs:57
XmlMembersMapping ImportMembersMapping(string? elementName, string? ns, XmlReflectionMember[] members, bool hasWrapperElement, bool writeAccessors, bool validate, XmlMappingAccess access)
bool InitializeStructMembers(StructMapping mapping, StructModel model, RecursionLimiter limiter)
XmlTypeMapping ImportTypeMapping(Type type, string? defaultNamespace)
StructMapping ImportStructLikeMapping(StructModel model, RecursionLimiter limiter)
TypeMapping GetTypeMapping(string typeName, string ns, TypeDesc typeDesc)
TypeMapping ImportTypeMapping(TypeModel model, RecursionLimiter limiter)
MemberMapping ImportMemberMapping(XmlReflectionMember xmlReflectionMember, string ns, XmlReflectionMember[] xmlReflectionMembers, XmlSchemaForm form, RecursionLimiter limiter)
static ElementAccessor CreateElementAccessor(TypeMapping mapping, string ns)
void IncludeTypes(ICustomAttributeProvider provider)
void ImportAccessorMapping(MemberMapping accessor, FieldModel model, SoapAttributes a, string ns, XmlSchemaForm form, RecursionLimiter limiter)
SoapReflectionImporter(SoapAttributeOverrides? attributeOverrides)
MembersMapping ImportMembersMapping(XmlReflectionMember[] xmlReflectionMembers, string ns, bool hasWrapperElement, bool writeAccessors, bool validateWrapperElement, RecursionLimiter limiter)
XmlMembersMapping ImportMembersMapping(string? elementName, string? ns, XmlReflectionMember[] members, bool hasWrapperElement, bool writeAccessors)
ConstantMapping ImportConstantMapping(ConstantModel model)
SoapAttributes GetAttributes(MemberInfo memberInfo)
NullableMapping CreateNullableMapping(TypeMapping baseMapping, [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.All)] Type type)
XmlMembersMapping ImportMembersMapping(string? elementName, string? ns, XmlReflectionMember[] members, bool hasWrapperElement, bool writeAccessors, bool validate)
TypeMapping ImportTypeMapping(TypeModel model, string dataType, RecursionLimiter limiter)
ArrayMapping ImportArrayLikeMapping(ArrayModel model, RecursionLimiter limiter)
PrimitiveMapping ImportPrimitiveMapping(PrimitiveModel model, string dataType)
object GetDefaultValue(TypeDesc fieldTypeDesc, SoapAttributes a)
SoapReflectionImporter(SoapAttributeOverrides? attributeOverrides, string? defaultNamespace)
void IncludeTypes(ICustomAttributeProvider provider, RecursionLimiter limiter)
string XsdTypeName(Type type, SoapAttributes a, string name)
void IncludeType(Type type, RecursionLimiter limiter)
XmlMembersMapping ImportMembersMapping(string? elementName, string? ns, XmlReflectionMember[] members)
Exception ReflectionException(string context, Exception e)
MemberMapping ImportFieldMapping(FieldModel model, SoapAttributes a, string ns, RecursionLimiter limiter)
void AddTypeMapping(TypeMapping typeMapping)
Definition TypeScope.cs:930
TypeDesc GetTypeDesc(string name, string ns)
Definition TypeScope.cs:224
static string GenerateKey(Type type, XmlRootAttribute root, string ns)
Definition XmlMapping.cs:82
static XmlReflectionMember FindSpecifiedMember(string memberName, XmlReflectionMember[] reflectionMembers)
static ? string EncodeLocalName(string? name)
Definition XmlConvert.cs:49