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

◆ SetIfMembersHaveConflict()

void System.Runtime.Serialization.ClassDataContract.ClassDataContractCriticalHelper.SetIfMembersHaveConflict ( List< DataMember > members)
inlineprivate

Definition at line 617 of file ClassDataContract.cs.

618 {
619 if (BaseContract == null)
620 {
621 return;
622 }
623 int num = 0;
625 foreach (DataMember member in members)
626 {
627 list.Add(new Member(member, base.StableName.Namespace, num));
628 }
630 {
631 num++;
632 foreach (DataMember member2 in baseContract.Members)
633 {
634 list.Add(new Member(member2, baseContract.StableName.Namespace, num));
635 }
636 }
637 IComparer<Member> singleton = DataMemberConflictComparer.Singleton;
638 list.Sort(singleton);
639 int num2;
640 for (num2 = 0; num2 < list.Count - 1; num2++)
641 {
642 int num3 = num2;
643 int i = num2;
644 bool flag = false;
645 for (; i < list.Count - 1 && string.CompareOrdinal(list[i].member.Name, list[i + 1].member.Name) == 0 && string.CompareOrdinal(list[i].ns, list[i + 1].ns) == 0; i++)
646 {
647 list[i].member.ConflictingMember = list[i + 1].member;
648 if (!flag)
649 {
650 flag = list[i + 1].member.HasConflictingNameAndType || list[i].member.MemberType != list[i + 1].member.MemberType;
651 }
652 }
653 if (flag)
654 {
655 for (int j = num3; j <= i; j++)
656 {
657 list[j].member.HasConflictingNameAndType = true;
658 }
659 }
660 num2 = i + 1;
661 }
662 }

References System.Runtime.Serialization.ClassDataContract.ClassDataContractCriticalHelper.BaseContract, System.Runtime.Serialization.Dictionary, System.list, System.Runtime.Serialization.DataMember.Name, and System.Runtime.Serialization.ClassDataContract.ClassDataContractCriticalHelper.DataMemberConflictComparer.Singleton.

Referenced by System.Runtime.Serialization.ClassDataContract.ClassDataContractCriticalHelper.ImportDataMembers().