상속: PublicBroadcasting.Impl.TypeDescription
예제 #1
0
        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;
        }