예제 #1
0
        public void TestCases()
        {
            DmSerializer serializer = new DmSerializer();

            foreach (var obj in SerializableObjects.GetObjects())
            {
                try
                {
                    var cliByte = serializer.Serialize(obj);
                    var ob2     = serializer.Deserialize(cliByte);

                    bool areEqual = false;


                    if (EqualityHelpers.IsDictionary(obj.GetType()))
                    {
                        areEqual = EqualityHelpers.DictionariesAreEqual((IDictionary)obj, (IDictionary)ob2);
                    }
                    else if (EqualityHelpers.IsEnumerable(obj.GetType()))
                    {
                        areEqual = EqualityHelpers.ArraysAreEqual((IEnumerable)obj, (IEnumerable)ob2);
                    }
                    else
                    {
                        areEqual = obj.Equals(ob2);
                    }

                    Assert.True(areEqual, $"Type: {obj.GetType()}: Instance 1 is not equal to deserialized instance.");
                }
                catch (Exception ex)
                {
                    Assert.True(false, ($"Object 1 Type : {obj.GetType()} - is not serializable. ({ex.Message})"));
                }
            }
        }
예제 #2
0
    private async static Task TestWebPostStream()
    {
        var dmTable = GetATestTable();
        var dmSet   = new DmSet();

        dmSet.Tables.Add(dmTable);
        var surrgotabeTable = new DmSetSurrogate(dmSet);

        DmSerializer serializer = new DmSerializer();
        var          binaryData = serializer.Serialize(surrgotabeTable);

        Uri target = new Uri("http://localhost:5000/api/sync");

        var client = new HttpClient();

        ByteArrayContent arrayContent = new ByteArrayContent(binaryData);
        var response = await client.PostAsync(target, arrayContent);

        if (response.IsSuccessStatusCode)
        {
            using (var stream = await response.Content.ReadAsStreamAsync())
            {
                var ds = serializer.Deserialize <DmSetSurrogate>(stream);

                var newDs = ds.ConvertToDmSet();
            }
        }
    }
예제 #3
0
        public void AddingAConverter()
        {
            ClassWithAConverter cc = new ClassWithAConverter();

            cc.ID       = 12;
            cc.LastName = "Pertus";
            cc.Ptr      = new IntPtr(12222);


            DmSerializer serializer = new DmSerializer();

            serializer.RegisterConverter(typeof(ClassWithAConverter), new ClassConverterForClassWithAConverter());

            var b = serializer.Serialize(cc);

            var cc2 = serializer.Deserialize <ClassWithAConverter>(b);

            Assert.Equal(cc, cc2);
        }
예제 #4
0
        public static BatchPart Deserialize(string fileName)
        {
            if (String.IsNullOrEmpty(fileName))
            {
                throw new ArgumentException("Cant get a Batch part if fileName doesn't exist");
            }

            if (!File.Exists(fileName))
            {
                throw new ArgumentException($"file {fileName} doesn't exist");
            }

            BatchPart bp = new BatchPart();

            using (FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read))
            {
                DmSerializer serializer = new DmSerializer();
                bp.DmSetSurrogate = serializer.Deserialize <DmSetSurrogate>(fs);
            }

            return(bp);
        }
예제 #5
0
        static void Main(string[] args)
        {
            Address clientAddress = new Address
            {
                City       = "Toulouse",
                PostalCode = "31620"
            };
            Client cli = new Client
            {
                Address     = clientAddress,
                Birthday    = new DateTime(1976, 10, 23),
                ClientId    = Guid.NewGuid(),
                FirstName   = "Sebastien",
                LastName    = "Pertus",
                IsAvailable = true,
                Money       = 10,
                Id          = 1,
            };

            Client deserializedClient = null;

            // ----------------------------------------------------------------------------
            // We are on .NET 4.6.2, so using version .Net Standard 1.3 (to 1.5)
            // ----------------------------------------------------------------------------
            DmSerializer serializer = new DmSerializer();

            using (FileStream fs = new FileStream("client.bin", FileMode.OpenOrCreate, FileAccess.ReadWrite))
            {
                serializer.Serialize(cli, fs);
            }

            using (FileStream fs = new FileStream("client.bin", FileMode.Open, FileAccess.ReadWrite))
            {
                deserializedClient = serializer.Deserialize <Client>(fs);
            }
        }
예제 #6
0
 public override T Deserialize(Stream ms)
 {
     return(serializer.Deserialize <T>(ms));
 }