public void ObjectToDictionary_DictionaryToObject_Test()
        {
            Assert.Throws <NotSupportedException>(() =>
            {
                DictionaryEmit.DictionaryToObject <List <int> >(new Dictionary <string, string>());
            });


            Assert.Throws <NotSupportedException>(() =>
            {
                DictionaryEmit.GetDictionaryFunc <List <DictionaryEmitClass1> >();
            });

            var o = new DictionaryEmitClass1()
            {
                Id       = 100,
                Name     = "zhangsan",
                Age      = 22,
                Birthday = new DateTime(2020, 3, 5)
            };

            var dict1 = DictionaryEmit.ObjectToDictionary <DictionaryEmitClass1>(o);

            Assert.Equal(o.Id.ToString(), dict1["Id"]);
            Assert.Equal(o.Name, dict1["Name"]);
            Assert.Equal(o.Age?.ToString(), dict1["Age"]);
            Assert.Equal(4, dict1.Count);


            var o1 = DictionaryEmit.DictionaryToObject <DictionaryEmitClass1>(dict1);

            Assert.Equal(o.Id, o1.Id);
            Assert.Equal(o.Name, o1.Name);
            Assert.Equal(o.Age, o1.Age);
            Assert.Equal(o.Birthday, o1.Birthday);
        }