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

◆ ImportEnumMapping()

EnumMapping System.Xml.Serialization.XmlReflectionImporter.ImportEnumMapping ( EnumModel model,
string ns,
bool repeats )
inlineprivate

Definition at line 1191 of file XmlReflectionImporter.cs.

1192 {
1193 XmlAttributes attributes = GetAttributes(model.Type, canBeSimpleType: false);
1194 string text = ns;
1195 if (attributes.XmlType != null && attributes.XmlType.Namespace != null)
1196 {
1197 text = attributes.XmlType.Namespace;
1198 }
1199 string name = (IsAnonymousType(attributes, ns) ? null : XsdTypeName(model.Type, attributes, model.TypeDesc.Name));
1200 name = XmlConvert.EncodeLocalName(name);
1201 EnumMapping enumMapping = (EnumMapping)GetTypeMapping(name, text, model.TypeDesc, _types, model.Type);
1202 if (enumMapping == null)
1203 {
1204 enumMapping = new EnumMapping();
1205 enumMapping.TypeDesc = model.TypeDesc;
1208 enumMapping.IsFlags = model.Type.IsDefined(typeof(FlagsAttribute), inherit: false);
1209 if (enumMapping.IsFlags && repeats)
1210 {
1212 }
1214 enumMapping.IncludeInSchema = attributes.XmlType == null || attributes.XmlType.IncludeInSchema;
1215 if (!enumMapping.IsAnonymousType)
1216 {
1217 _types.Add(name, text, enumMapping);
1218 }
1219 else
1220 {
1222 }
1224 for (int i = 0; i < model.Constants.Length; i++)
1225 {
1226 ConstantMapping constantMapping = ImportConstantMapping(model.Constants[i]);
1227 if (constantMapping != null)
1228 {
1229 list.Add(constantMapping);
1230 }
1231 }
1232 if (list.Count == 0)
1233 {
1235 }
1236 enumMapping.Constants = list.ToArray();
1238 }
1239 return enumMapping;
1240 }
static string XmlIllegalAttributeFlagsArray
Definition SR.cs:1470
static string Format(string resourceFormat, object p1)
Definition SR.cs:118
static string XmlNoSerializableMembers
Definition SR.cs:1620
Definition SR.cs:7
void Add(XmlQualifiedName qname, object value)
Definition NameTable.cs:57
void AddTypeMapping(TypeMapping typeMapping)
Definition TypeScope.cs:930
TypeMapping GetTypeMapping(string typeName, string ns, TypeDesc typeDesc, NameTable typeLib, Type type)
ConstantMapping ImportConstantMapping(ConstantModel model)
static bool IsAnonymousType(XmlAttributes a, string contextNs)
XmlAttributes GetAttributes(Type type, bool canBeSimpleType)

References System.Xml.Serialization.XmlReflectionImporter._anonymous, System.Xml.Serialization.XmlReflectionImporter._types, System.Xml.Serialization.XmlReflectionImporter._typeScope, System.Xml.Serialization.NameTable.Add(), System.Xml.Serialization.TypeScope.AddTypeMapping(), System.Xml.Dictionary, System.Xml.XmlConvert.EncodeLocalName(), System.SR.Format(), System.Xml.Serialization.XmlReflectionImporter.GetAttributes(), System.Xml.Serialization.XmlReflectionImporter.GetTypeMapping(), System.Xml.Serialization.XmlReflectionImporter.ImportConstantMapping(), System.Xml.Serialization.XmlTypeAttribute.IncludeInSchema, System.Xml.Serialization.XmlReflectionImporter.IsAnonymousType(), System.list, System.Xml.Serialization.XmlTypeAttribute.Namespace, System.text, System.SR.XmlIllegalAttributeFlagsArray, System.SR.XmlNoSerializableMembers, System.Xml.Serialization.XmlAttributes.XmlType, and System.Xml.Serialization.XmlReflectionImporter.XsdTypeName().

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