Exemplo n.º 1
1
        public void SerializeCompilerGeneratedMembers()
        {
            StructTest structTest = new StructTest
            {
              IntField = 1,
              IntProperty = 2,
              StringField = "Field",
              StringProperty = "Property"
            };

              DefaultContractResolver skipCompilerGeneratedResolver = new DefaultContractResolver
              {
            DefaultMembersSearchFlags = BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public
              };

              string skipCompilerGeneratedJson = JsonConvert.SerializeObject(structTest, Formatting.Indented,
            new JsonSerializerSettings { ContractResolver = skipCompilerGeneratedResolver });

              Assert.AreEqual(@"{
              ""StringField"": ""Field"",
              ""IntField"": 1,
              ""StringProperty"": ""Property"",
              ""IntProperty"": 2
            }", skipCompilerGeneratedJson);

              DefaultContractResolver includeCompilerGeneratedResolver = new DefaultContractResolver
              {
            DefaultMembersSearchFlags = BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public,
            SerializeCompilerGeneratedMembers = true
              };

              string includeCompilerGeneratedJson = JsonConvert.SerializeObject(structTest, Formatting.Indented,
            new JsonSerializerSettings { ContractResolver = includeCompilerGeneratedResolver });

              Assert.AreEqual(@"{
              ""StringField"": ""Field"",
              ""IntField"": 1,
              ""<StringProperty>k__BackingField"": ""Property"",
              ""<IntProperty>k__BackingField"": 2,
              ""StringProperty"": ""Property"",
              ""IntProperty"": 2
            }", includeCompilerGeneratedJson);
        }
    public void CreateSetWithBadTarget()
    {
      object structTest = new StructTest();

      Action<object, object> setter = DynamicReflectionDelegateFactory.Instance.CreateSet<object>(typeof(StructTest).GetProperty("StringProperty"));

      setter(structTest, "Hi");

      Assert.AreEqual("Hi", ((StructTest)structTest).StringProperty);

      setter(new TimeSpan(), "Hi");
    }
    public void CreateSetWithBadTarget()
    {
      ExceptionAssert.Throws<InvalidCastException>("Specified cast is not valid.",
      () =>
      {
        object structTest = new StructTest();

        Action<object, object> setter = DynamicReflectionDelegateFactory.Instance.CreateSet<object>(typeof(StructTest).GetProperty("StringProperty"));

        setter(structTest, "Hi");

        Assert.AreEqual("Hi", ((StructTest)structTest).StringProperty);

        setter(new TimeSpan(), "Hi");
      });
    }
        public void SetOnStruct()
        {
            object structTest = new StructTest();

            Action<object, object> setter = ExpressionReflectionDelegateFactory.Instance.CreateSet<object>(typeof(StructTest).GetProperty("StringProperty"));

            setter(structTest, "Hi1");
            Assert.AreEqual("Hi1", ((StructTest)structTest).StringProperty);

            setter = ExpressionReflectionDelegateFactory.Instance.CreateSet<object>(typeof(StructTest).GetField("StringField"));

            setter(structTest, "Hi2");
            Assert.AreEqual("Hi2", ((StructTest)structTest).StringField);
        }