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

◆ XmlDataContractCriticalHelper()

System.Runtime.Serialization.XmlDataContract.XmlDataContractCriticalHelper.XmlDataContractCriticalHelper ( [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors | DynamicallyAccessedMemberTypes.NonPublicConstructors | DynamicallyAccessedMemberTypes.PublicMethods | DynamicallyAccessedMemberTypes.NonPublicMethods | DynamicallyAccessedMemberTypes.PublicFields | DynamicallyAccessedMemberTypes.PublicProperties)] Type type)
inlinepackage

Definition at line 135 of file XmlDataContract.cs.

136 : base(type)
137 {
138 if (type.IsDefined(Globals.TypeOfDataContractAttribute, inherit: false))
139 {
140 throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidDataContractException(System.SR.Format(System.SR.IXmlSerializableCannotHaveDataContract, DataContract.GetClrTypeFullName(type))));
141 }
142 if (type.IsDefined(Globals.TypeOfCollectionDataContractAttribute, inherit: false))
143 {
144 throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidDataContractException(System.SR.Format(System.SR.IXmlSerializableCannotHaveCollectionDataContract, DataContract.GetClrTypeFullName(type))));
145 }
146 SchemaExporter.GetXmlTypeInfo(type, out var stableName, out var _, out var hasRoot);
150 base.Name = xmlDictionary.Add(base.StableName.Name);
151 base.Namespace = xmlDictionary.Add(base.StableName.Namespace);
152 object[] array = ((base.UnderlyingType == null) ? null : base.UnderlyingType.GetCustomAttributes(Globals.TypeOfXmlRootAttribute, inherit: false).ToArray());
153 if (array == null || array.Length == 0)
154 {
155 if (hasRoot)
156 {
158 _topLevelElementNamespace = ((base.StableName.Namespace == "http://www.w3.org/2001/XMLSchema") ? DictionaryGlobals.EmptyString : base.Namespace);
160 }
161 return;
162 }
163 if (hasRoot)
164 {
167 string elementName = xmlRootAttribute.ElementName;
168 _topLevelElementName = ((elementName == null || elementName.Length == 0) ? base.Name : xmlDictionary.Add(DataContract.EncodeLocalName(elementName)));
169 string @namespace = xmlRootAttribute.Namespace;
170 _topLevelElementNamespace = ((@namespace == null || @namespace.Length == 0) ? DictionaryGlobals.EmptyString : xmlDictionary.Add(@namespace));
171 return;
172 }
173 throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidDataContractException(System.SR.Format(System.SR.IsAnyCannotHaveXmlRoot, DataContract.GetClrTypeFullName(base.UnderlyingType))));
174 }
void Add(TKey key, TValue value)
static string EncodeLocalName(string localName)
DataContract(DataContractCriticalHelper helper)
static string IXmlSerializableCannotHaveDataContract
Definition SR.cs:182
static string IsAnyCannotHaveXmlRoot
Definition SR.cs:174
static string Format(string resourceFormat, object p1)
Definition SR.cs:118
static string IXmlSerializableCannotHaveCollectionDataContract
Definition SR.cs:180
Definition SR.cs:7

References System.Runtime.Serialization.XmlDataContract.XmlDataContractCriticalHelper._isTopLevelElementNullable, System.Runtime.Serialization.XmlDataContract.XmlDataContractCriticalHelper._topLevelElementName, System.Runtime.Serialization.XmlDataContract.XmlDataContractCriticalHelper._topLevelElementNamespace, System.Collections.Generic.Dictionary< TKey, TValue >.Add(), System.array, System.Runtime.Serialization.Dictionary, System.Runtime.Serialization.DictionaryGlobals.EmptyString, System.Runtime.Serialization.DataContract.EncodeLocalName(), System.SR.Format(), System.Runtime.Serialization.DataContract.GetClrTypeFullName(), System.Runtime.Serialization.SchemaExporter.GetXmlTypeInfo(), System.Runtime.Serialization.XmlDataContract.XmlDataContractCriticalHelper.HasRoot, System.SR.IsAnyCannotHaveXmlRoot, System.SR.IXmlSerializableCannotHaveCollectionDataContract, System.SR.IXmlSerializableCannotHaveDataContract, System.Xml.Schema.Length, System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperError(), System.type, System.Runtime.Serialization.Globals.TypeOfCollectionDataContractAttribute, System.Runtime.Serialization.Globals.TypeOfDataContractAttribute, and System.Runtime.Serialization.Globals.TypeOfXmlRootAttribute.

Referenced by System.Runtime.Serialization.XmlDataContract.XmlDataContract().