private bool ClassEquality(ClassTypeDescription x, ClassTypeDescription y) { if (x.Members.Count != y.Members.Count) { return(false); } foreach (var kv in x.Members) { TypeDescription otherValue; if (!y.Members.TryGetValue(kv.Key, out otherValue)) { return(false); } if (!Equals(kv.Value, otherValue)) { return(false); } } return(true); }
internal override TypeDescription Clone(Dictionary <TypeDescription, TypeDescription> backRefLookup) { if (backRefLookup.ContainsKey(this)) { return(backRefLookup[this]); } var clone = new ClassTypeDescription(); backRefLookup[this] = clone; var members = new Dictionary <string, TypeDescription>(); foreach (var kv in Members) { members[kv.Key] = kv.Value.Clone(backRefLookup); } clone.Members = members; clone.ForType = ForType; clone.PocoType = PocoType; return(clone); }
internal override TypeDescription Clone(Dictionary<TypeDescription, TypeDescription> backRefLookup) { if (backRefLookup.ContainsKey(this)) { return backRefLookup[this]; } var clone = new ClassTypeDescription(); backRefLookup[this] = clone; var members = new Dictionary<string, TypeDescription>(); foreach (var kv in Members) { members[kv.Key] = kv.Value.Clone(backRefLookup); } clone.Members = members; clone.ForType = ForType; clone.PocoType = PocoType; return clone; }