예제 #1
0
        //[TestMethod]
        public void QueryMembers()
        {
            var jtest = new JTest {
                Payload = new JTest()
            };

            var json = JsonConvert.SerializeObject(jtest);

            dynamic jdynamic = new JDynamic(json);

            var jmembers = jtest.GetMembers();

            foreach (var info in jmembers)
            {
                var jvalue = info.GetValue(jtest);
                var dvalue = jdynamic[info.Name];

                switch (jvalue)
                {
                case JTest jt:
                {
                    Compare(jdynamic.Payload, jt);
                    break;
                }

                default:
                {
                    Assert.AreEqual(jvalue, dvalue);
                    break;
                }
                }
            }
        }
예제 #2
0
        public void Simple()
        {
            dynamic   json = new JDynamic("{a:1}");
            Stopwatch sw   = new Stopwatch();

            sw.Start();
            int a = 0;

            a = json.a;
            sw.Stop();
            Console.WriteLine(sw.ElapsedMilliseconds);
            sw.Reset();
            sw.Restart();
            for (int i = 0; i < 1000000; i++)
            {
                a = json.a;
            }
            sw.Stop();
            Console.WriteLine(a + "---------------");
            Console.WriteLine(sw.ElapsedMilliseconds);
            Assert.IsTrue(sw.ElapsedMilliseconds < 1000);
            sw.Reset();
            sw.Restart();
            var obj = new { a = 1 };

            for (int i = 0; i < 1000000; i++)
            {
                a = obj.a;
            }
            sw.Stop();
            Console.WriteLine(a + "---------------");
            Console.WriteLine(sw.ElapsedMilliseconds);
        }
예제 #3
0
        public void Alteration()
        {
            var jtest = new JTest {
                Payload = new JTest()
            };

            var json = JsonConvert.SerializeObject(jtest);

            dynamic jdynamic = new JDynamic(json);

            Compare(jdynamic, jtest);

            jdynamic.String = jtest.String = jtest.String.ToLower();
            //jdynamic.Short = ++jtest.Short;
            //jdynamic.UShort = ++jtest.UShort;
            jdynamic.Int = ++jtest.Int;
            //jdynamic.UInt = ++jtest.UInt;
            //jdynamic.Long = ++jtest.Long;
            jdynamic.Decimal        = ++jtest.Decimal;
            jdynamic.Guid           = jtest.Guid = Guid.NewGuid();
            jdynamic.DateTime       = jtest.DateTime = DateTime.Now;
            jdynamic.DateTimeOffset = jtest.DateTimeOffset = DateTimeOffset.Now;

            jdynamic.Payload = jtest.Payload = new JTest(jtest);

            Compare(jdynamic, jtest);
        }
예제 #4
0
        public void SimpleArray()
        {
            dynamic json = new JDynamic("[1,2,3]");

            Assert.AreEqual(3, json.Length);
            Assert.AreEqual(1, json[0]);
            Assert.AreEqual(3, json[2]);
        }
예제 #5
0
        public void MemberArray()
        {
            dynamic json = new JDynamic("{a:[1,2,3]}");

            Assert.AreEqual(3, json.a.Length);
            Assert.AreEqual(1, json.a[0]);
            Assert.AreEqual(3, json.a[2]);
        }
예제 #6
0
        public void TestDateTimeSupport()
        {
            var     obj  = new { a = DateTime.Now };
            var     json = new JDynamic(obj).ToString();
            dynamic des  = new JDynamic(json);

            Assert.AreEqual(obj.a.ToString(), des.a.ToString());
        }
예제 #7
0
        public void ArrayMember()
        {
            dynamic json = new JDynamic("{a:[-1,2,-3]}");

            Assert.AreEqual(-1, json.a[0]);
            Assert.AreEqual(2, json.a[1]);
            Assert.AreEqual(-3, json.a[2]);
        }
예제 #8
0
        public void ArrayObject()
        {
            dynamic json = new JDynamic("[{b:1},{c:1}]");

            Assert.AreEqual(2, json.Length);
            Assert.AreEqual(1, json[0].b);
            Assert.AreEqual(1, json[1].c);
            Assert.AreEqual(1, json[1]["c"]);
        }
예제 #9
0
        public void Construction()
        {
            var jtest = new JTest {
                Payload = new JTest()
            };

            var json = JsonConvert.SerializeObject(jtest);

            dynamic jdynamic = new JDynamic(json);

            Compare(jdynamic, jtest);
        }
예제 #10
0
        public void ListMembers()
        {
            var jtest = new JTest {
                Payload = new JTest()
            };

            var json = JsonConvert.SerializeObject(jtest);

            dynamic jdynamic = new JDynamic(json);

            var jmembers = jtest.GetMemberNames();
            var dmembers = jdynamic.GetDynamicMemberNames();

            Assert.IsTrue(Enumerable.SequenceEqual(jmembers, dmembers));
        }
예제 #11
0
        public static void Main(string[] arguments)
        {
            var writer = Console.Out;

            var x = SyncfusionLicenseProvider.ValidateLicense(Platform.WPF, out string xs);

            var t = new DateTime(2020, 6, 25);

            t = DateTime.SpecifyKind(t, DateTimeKind.Utc);

            var s = new SourceClass
            {
                Name    = "Ramayasket",
                Value   = 8052,
                Payload = new byte[] { 1, 2, 4, 8 },
                Child   = null,
            };

            var s1 = s.Child = new SourceClass {
                Name  = "\\Child of Ramayasket",
                Value = 80052,
                //Payload = new byte[] { 1, 2, 4, 8 },
                Payload = t,
                Child   = null,
            };

            var js = JsonConvert.SerializeObject(s);

            dynamic jd = new JDynamic(js);

            //jd.Payload = double.NaN;
            //var jdp = jd.Payload;

            var jdc = jd.Child;

            jdc           = jd["Child"];
            jd["Payload"] = 80053;
            var jdp = jd.Payload;

            var jdps  = jd.GetDynamicMemberNames();
            var jdcps = jdc.GetDynamicMemberNames();

            //var jdn1 = jd.Name1;
            var jdcc = jdc.Child;


            var jds = jd.ToString();
        }
예제 #12
0
        public void Complex()
        {
            dynamic   json = new JDynamic("{a:{b:{c:1}}}");
            Stopwatch sw   = new Stopwatch();

            sw.Start();
            int a = 0;

            a = json.a.b.c;
            sw.Stop();
            Console.WriteLine(sw.ElapsedMilliseconds);
            sw.Reset();
            sw.Restart();
            for (int i = 0; i < 1000000; i++)
            {
                a = json.a.b.c;
            }
            sw.Stop();
            Console.WriteLine(a + "---------------");
            Console.WriteLine(sw.ElapsedMilliseconds);
        }
예제 #13
0
        public List <User> getUserList()
        {
            List <User> userList = new List <User>();
            var         req      = WebRequest.Create(Server.ApiUrl + "/users/list/" + SecurityModel.getInstance().AuthenticatedUser.UserId);

            req.Method = "GET";

            var resp = (HttpWebResponse)req.GetResponse();

            using (var reader = new StreamReader(resp.GetResponseStream()))
            {
                var     userData     = reader.ReadToEnd();
                dynamic userApiModel = new JDynamic(userData);

                if (userApiModel.state == 0)
                {
                    foreach (dynamic o in userApiModel.list)
                    {
                        User user = new User();
                        user.Authority       = formatUserRoleToAuthority(o.userRole);
                        user.UserId          = o.userId;
                        user.UserName        = o.name;
                        user.EmailAddress    = o.emailAddress;
                        user.JoinedProjects  = getJoinedProjectsByUser(user.UserId);
                        user.InvitedProjects = getInvitedProjectsByUser(user.UserId);
                        user.Issues          = getIssuesByUser(user.UserId);
                        userList.Add(user);
                    }
                }
                else
                {
                    userList = null;
                }
            }

            return(userList);
        }
예제 #14
0
        public void SimpleMember()
        {
            dynamic json = new JDynamic("{a:1}");

            Assert.AreEqual(1, json.a);
        }
예제 #15
0
        public void InnerMember()
        {
            dynamic json = new JDynamic("{a:{a:1}}");

            Assert.AreEqual(1, json.a.a);
        }
예제 #16
0
        public void StringIndex()
        {
            dynamic json = new JDynamic("{a:{a:1}}");

            Assert.AreEqual(1, json["a"]["a"]);
        }
예제 #17
0
        public void SelfDouble()
        {
            dynamic json = new JDynamic("1.1");

            Assert.AreEqual(1.1, json.Value);
        }
예제 #18
0
        public void StringMember()
        {
            dynamic json = new JDynamic("{a:'abc'}");

            Assert.AreEqual("abc", json.a);
        }
예제 #19
0
        public void DoubleMember2()
        {
            dynamic json = new JDynamic("{a:-3.1416}");

            Assert.AreEqual(-3.1416, json.a);
        }
예제 #20
0
        public void IntMember()
        {
            dynamic json = new JDynamic("{a:-1}");

            Assert.AreEqual(-1, json.a);
        }