Newtonsoft.json: لا يعمل JsonProperty.ItemConverterType عند تزيينه في فئة أساسية

تم إنشاؤها على ٢٢ فبراير ٢٠١٣  ·  3تعليقات  ·  مصدر: JamesNK/Newtonsoft.Json

[TestFixture]
public class JsonPropertyItemConverterType
{
    public enum Thingy
    {
        Test
    }

    [JsonObject(MemberSerialization.OptIn)]
    public abstract class Base
    {
        [JsonProperty(PropertyName = "type", Required = Required.Always, Order = 0,
            ItemConverterType = typeof (StringEnumConverter))]
        public Thingy Type { get; internal set; }
    }

    public class Thing : Base
    {
        public Thing()
        {
            Type = Thingy.Test;
        }
    }

    [Test]
    public void ItShouldWork()
    {
        var json = JsonConvert.SerializeObject(new Thing());

        Assert.That(json, Is.EqualTo(@"{""type"":""Test""}"));
    }

    [Test]
    public void ItShouldWork2()
    {
        var json = JsonConvert.SerializeObject(new Thing(), new StringEnumConverter());

        Assert.That(json, Is.EqualTo(@"{""type"":""Test""}"));
    }
}

التعليق الأكثر فائدة

أنا أستخدم خاصية wring ،

    [JsonConverter(typeof(StringEnumConverter))]

يعمل بشكل جيد.

ال 3 كومينتر

يعمل اسم الخاصية ولكن لا يعمل نوع العنصر

أنا أستخدم خاصية wring ،

    [JsonConverter(typeof(StringEnumConverter))]

يعمل بشكل جيد.

بعد 6 سنوات وما زالت الوثائق تضللني لأرتكب هذا الخطأ.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات