Ejemplo n.º 1
0
        public static bool Equals <TKey>(IDataReader <TKey> reader1, IDataReader <TKey> reader2)
        {
            try
            {
                using var keys1 = reader1.Keys.GetEnumerator();
                using var keys2 = reader2.Keys.GetEnumerator();

Loop:

                var m1 = keys1.MoveNext();
                var m2 = keys2.MoveNext();

                if (m1 != m2)
                {
                    return(false);
                }

                if (m1)
                {
                    var key1   = keys1.Current;
                    var key2   = keys1.Current;
                    var value1 = reader1[key1].DirectRead();
                    var value2 = reader2[key2].DirectRead();

                    if (Equals(key1, key2) && Equals(value1, value2))
                    {
                        goto Loop;
                    }

                    return(false);
                }

                return(true);
            }
            catch
            {
                var obj1 = MessagePackFormatter.DeserializeObject <object>(MessagePackFormatter.SerializeObject(reader1));
                var obj2 = MessagePackFormatter.DeserializeObject <object>(MessagePackFormatter.SerializeObject(reader2));

                return(Equals(obj1, obj2));
            }
        }
 public override TObject Deserialize <TObject>(byte[] symbols)
 {
     return(MessagePackFormatter.DeserializeObject <TObject>(symbols));
 }
Ejemplo n.º 3
0
 public override TObject Deserialize <TObject>(byte[] symbols)
 {
     return(MessagePackFormatter.DeserializeObject <TObject>(symbols, MessagePackFormatterOptions.IgnoreNull | MessagePackFormatterOptions.IgnoreZero));
 }