Exemplo n.º 1
0
        static void Main(string[] args)
        {
            Process.GetCurrentProcess().PriorityClass = ProcessPriorityClass.RealTime;
            Thread.CurrentThread.Priority = ThreadPriority.Highest;
            Root r = new Root();

            r.X     = "DCS";
            r.Items = new SerializedClassA[100];

            long objCount = 0;

            for (int i = 0; i < r.Items.Length; i++)
            {
                var a = new SerializedClassA();
                objCount++;
                r.Items[i] = a;
                a.FieldA   = GetRandomString();
                a.FieldB   = GetRandomString();
                a.FieldC   = GetRandomString();
                a.FieldD   = GetRandomString();
                a.FieldE   = GetRandomString();
                a.FieldF   = GetRandomString();
                a.FieldG   = GetRandomString();
                a.FieldH   = GetRandomString();
                a.FieldI   = GetRandomString();
                a.FieldJ   = GetRandomString();
                a.FieldK   = GetRandomString();
                a.FieldL   = GetRandomStringArray();
                a.FieldM   = GetRandomStringArray();
                a.FieldN   = GetRandomStringArray();
                a.FieldO   = Math.PI;
                a.FieldP   = Math.PI;
                a.FieldQ   = GetRandomDoubleArray();
                a.FieldR   = GetRandomDoubleArray();
                a.FieldS   = GetRandomStringArray();

                int count = _rng.Next(32) + 1;
                SerializedClassB[] items = new SerializedClassB[count];
                for (int j = 0; j < count; j++)
                {
                    var item = new SerializedClassB();
                    objCount++;
                    items[j]    = item;
                    item.FieldA = GetRandomString();
                    item.FieldB = GetRandomString();
                    item.FieldC = GetRandomString();
                    item.FieldD = GetRandomString();
                    item.FieldE = GetRandomStringArray();
                    //item.FieldH = a;
                    //item.FieldI = a;
                    item.FieldF        = new SerializedClassD();
                    item.FieldF.FieldA = GetRandomStringArray();
                    //item.FieldF.Hello1 = r.Items;

                    item.FieldG        = new SerializedClassE();
                    item.FieldG.FieldA = GetRandomStringArray();
                    //item.FieldG.Hello2 = r.Items;
                }

                int count2 = _rng.Next(32) + 1;
                SerializedClassC[] items2 = new SerializedClassC[count2];
                for (int j = 0; j < count2; j++)
                {
                    var item = new SerializedClassC();
                    objCount++;
                    items2[j]   = item;
                    item.FieldA = Math.PI;
                    item.FieldB = Math.PI;
                    item.FieldC = Math.PI;
                    item.FieldD = GetRandomString();
                    item.FieldE = GetRandomStringArray();
                    //item.FieldH = a;
                    //item.FieldI = a;
                    item.FieldF        = new SerializedClassD();
                    item.FieldF.FieldA = GetRandomStringArray();
                    //item.FieldF.Hello1 = r.Items;

                    item.FieldG        = new SerializedClassE();
                    item.FieldG.FieldA = GetRandomStringArray();
                    //item.FieldG.Hello2 = r.Items;
                }

                a.FieldT = items;
                a.FieldU = items2;
            }

            Test(r, "XmlSerializer", Serialize1, DeSerialize1);
            Test(r, "XmlSerializer-Bin", Serialize2, DeSerialize2);
            Test(r, "BinaryFormatter", Serialize3, DeSerialize3);
            Test(r, "SoapFormatter", Serialize4, DeSerialize4);
            Test(r, "DCS", Serialize5, DeSerialize5);
            Test(r, "DCS-Bin", Serialize6, DeSerialize6);
            Test(r, "NDCS", Serialize7, DeSerialize7);
            Test(r, "NDCS-Bin", Serialize8, DeSerialize8);
            Test(r, "DCS-Json", Serialize9, DeSerialize9);
        }
Exemplo n.º 2
0
        static bool CompareRoots(Root a, Root b)
        {
            if (a.Items.Length != b.Items.Length)
            {
                return(false);
            }

            if (a.X != b.X)
            {
                return(false);
            }

            for (int i = 0; i < a.Items.Length; i++)
            {
                SerializedClassA ca = a.Items[0];
                SerializedClassA cb = b.Items[0];
                if (ca.FieldA != cb.FieldA)
                {
                    return(false);
                }

                if (ca.FieldB != cb.FieldB)
                {
                    return(false);
                }

                if (ca.FieldC != cb.FieldC)
                {
                    return(false);
                }

                if (ca.FieldD != cb.FieldD)
                {
                    return(false);
                }

                if (ca.FieldE != cb.FieldE)
                {
                    return(false);
                }

                if (ca.FieldF != cb.FieldF)
                {
                    return(false);
                }

                if (ca.FieldG != cb.FieldG)
                {
                    return(false);
                }

                if (ca.FieldH != cb.FieldH)
                {
                    return(false);
                }

                if (ca.FieldI != cb.FieldI)
                {
                    return(false);
                }

                if (ca.FieldJ != cb.FieldJ)
                {
                    return(false);
                }

                if (ca.FieldK != cb.FieldK)
                {
                    return(false);
                }

                if (!CompareStringArrays(ca.FieldL, cb.FieldL))
                {
                    return(false);
                }

                if (!CompareStringArrays(ca.FieldM, cb.FieldM))
                {
                    return(false);
                }

                if (!CompareStringArrays(ca.FieldN, cb.FieldN))
                {
                    return(false);
                }

                if (ca.FieldO != cb.FieldO)
                {
                    return(false);
                }

                if (ca.FieldP != cb.FieldP)
                {
                    return(false);
                }

                if (!CompareDoubleArrays(ca.FieldQ, cb.FieldQ))
                {
                    return(false);
                }

                if (!CompareDoubleArrays(ca.FieldR, cb.FieldR))
                {
                    return(false);
                }

                if (!CompareStringArrays(ca.FieldS, cb.FieldS))
                {
                    return(false);
                }

                if (ca.FieldT.Length != cb.FieldT.Length)
                {
                    return(false);
                }

                for (int j = 0; j < ca.FieldT.Length; j++)
                {
                    var sba = ca.FieldT[j];
                    var sbb = ca.FieldT[j];

                    if (sba.FieldA != sbb.FieldA)
                    {
                        return(false);
                    }

                    if (sba.FieldB != sbb.FieldB)
                    {
                        return(false);
                    }

                    if (sba.FieldC != sbb.FieldC)
                    {
                        return(false);
                    }

                    if (sba.FieldD != sbb.FieldD)
                    {
                        return(false);
                    }

                    if (!CompareStringArrays(sba.FieldE, sbb.FieldE))
                    {
                        return(false);
                    }

                    if (!CompareStringArrays(sba.FieldF.FieldA, sbb.FieldF.FieldA))
                    {
                        return(false);
                    }

                    if (!CompareStringArrays(sba.FieldG.FieldA, sbb.FieldG.FieldA))
                    {
                        return(false);
                    }
                }
            }

            return(true);
        }