System.Xml.Serialization.SchemaObjectCache.Match C# (CSharp) Method

Match() private method

private Match ( XmlSchemaObject o1, XmlSchemaObject o2, bool shareTypes ) : bool
o1 System.Xml.Schema.XmlSchemaObject
o2 System.Xml.Schema.XmlSchemaObject
shareTypes bool
return bool
        internal bool Match(XmlSchemaObject o1, XmlSchemaObject o2, bool shareTypes) {
            if (o1 == o2)
                return true;
            if (o1.GetType() != o2.GetType())
                return false;
            if (Hash[o1] == null)
                Hash[o1] = GetHash(o1);
            int hash1 = (int)Hash[o1];
            int hash2 = GetHash(o2);
            if (hash1 != hash2)
                return false;

            if (shareTypes)
                return CompositeHash(o1, hash1) == CompositeHash(o2, hash2);
            return true;
        }