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

◆ GenerateLiteralMembersElementInternal()

bool System.Xml.Serialization.ReflectionXmlSerializationReader.GenerateLiteralMembersElementInternal ( MemberMapping[] mappings,
bool hasWrapperElement,
object[] p )
inlineprivate

Definition at line 165 of file ReflectionXmlSerializationReader.cs.

166 {
167 Member anyText = null;
168 Member anyElement = null;
169 Member member = null;
173 for (int i = 0; i < mappings.Length; i++)
174 {
175 int index = i;
176 MemberMapping memberMapping = mappings[index];
178 {
179 p[index] = o;
180 };
183 if (memberMapping.Xmlns != null)
184 {
185 XmlSerializerNamespaces xmlns = new XmlSerializerNamespaces();
186 p[index] = xmlns;
187 member2.XmlnsSource = delegate(string ns, string name)
188 {
189 xmlns.Add(ns, name);
190 };
191 }
194 if (memberMapping.CheckSpecified == SpecifiedAccessor.ReadWrite)
195 {
196 string text = memberMapping.Name + "Specified";
197 for (int j = 0; j < mappings.Length; j++)
198 {
199 if (mappings[j].Name == text)
200 {
201 int indexJ = j;
203 {
204 p[indexJ] = o;
205 };
206 }
207 }
208 }
209 bool flag = false;
210 if (memberMapping.Text != null)
211 {
213 }
214 if (memberMapping.Attribute != null && memberMapping.Attribute.Any)
215 {
216 anyMember.Collection = new CollectionMember();
219 {
220 anyMember.Collection.Add(item);
221 };
222 member = anyMember;
223 }
224 if (memberMapping.Attribute != null || memberMapping.Xmlns != null)
225 {
227 }
228 else if (memberMapping.Text != null)
229 {
231 }
232 if (!memberMapping.IsSequence)
233 {
234 for (int k = 0; k < memberMapping.Elements.Length; k++)
235 {
236 if (!memberMapping.Elements[k].Any || memberMapping.Elements[k].Name.Length != 0)
237 {
238 continue;
239 }
241 if (memberMapping.Attribute == null && memberMapping.Text == null)
242 {
243 anyMember.Collection = new CollectionMember();
245 {
246 anyMember.Collection.Add(item);
247 };
249 }
250 flag = true;
251 break;
252 }
253 }
254 if (memberMapping.Attribute != null || memberMapping.Text != null || flag)
255 {
256 list.Add(anyMember);
257 }
258 else if (memberMapping.TypeDesc.IsArrayLike && (memberMapping.Elements.Length != 1 || !(memberMapping.Elements[0].Mapping is ArrayMapping)))
259 {
260 anyMember.Collection = new CollectionMember();
262 {
263 anyMember.Collection.Add(item);
264 };
267 }
268 else
269 {
271 }
272 }
273 Member[] array = list.ToArray();
274 Member[] array2 = list2.ToArray();
275 if (array.Length != 0 && array[0].Mapping.IsReturnValue)
276 {
277 base.IsReturnValue = true;
278 }
279 if (list3.Count > 0)
280 {
281 Member[] members = list3.ToArray();
282 object o2 = null;
283 WriteAttributes(members, member, base.UnknownNode, ref o2);
284 base.Reader.MoveToElement();
285 }
287 {
288 if (base.Reader.IsEmptyElement)
289 {
290 base.Reader.Skip();
291 base.Reader.MoveToContent();
292 return false;
293 }
294 base.Reader.ReadStartElement();
295 }
296 base.Reader.MoveToContent();
297 while (base.Reader.NodeType != XmlNodeType.EndElement && base.Reader.NodeType != 0)
298 {
299 WriteMemberElements(array, base.UnknownNode, base.UnknownNode, anyElement, anyText);
300 base.Reader.MoveToContent();
301 }
302 Member[] array3 = array2;
303 foreach (Member member3 in array3)
304 {
305 object collection = null;
306 SetCollectionObjectWithCollectionMember(ref collection, member3.Collection, member3.Mapping.TypeDesc.Type);
307 member3.Source(collection);
308 }
309 if (member != null)
310 {
311 object collection2 = null;
312 SetCollectionObjectWithCollectionMember(ref collection2, member.Collection, member.Mapping.TypeDesc.Type);
313 member.ArraySource(collection2);
314 }
315 return true;
316 }
void Add(TKey key, TValue value)
void SetCollectionObjectWithCollectionMember([NotNull] ref object collection, CollectionMember collectionMember, [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors|DynamicallyAccessedMemberTypes.NonPublicConstructors|DynamicallyAccessedMemberTypes.PublicMethods|DynamicallyAccessedMemberTypes.NonPublicMethods)] Type collectionType)
void WriteAttributes(Member[] members, Member anyAttribute, UnknownNodeAction elseCall, ref object o)
void WriteMemberElements(Member[] expectedMembers, UnknownNodeAction elementElseAction, UnknownNodeAction elseAction, Member anyElement, Member anyText, Fixup fixup=null, List< CheckTypeSource > checkTypeHrefsSource=null)

References System.Xml.Serialization.XmlSerializerNamespaces.Add(), System.Collections.Generic.Dictionary< TKey, TValue >.Add(), System.array, System.collection, System.Collections.Generic.Dictionary< TKey, TValue >.Count, System.Xml.Dictionary, System.index, System.item, System.list, System.Xml.Name, System.Xml.Serialization.ReflectionXmlSerializationReader.SetCollectionObjectWithCollectionMember(), System.source, System.text, System.Xml.Serialization.ReflectionXmlSerializationReader.WriteAttributes(), and System.Xml.Serialization.ReflectionXmlSerializationReader.WriteMemberElements().

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