[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""}"));
}
}
ΠΈΠΌΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Π° ΡΠΈΠΏ ΠΊΡΡΡΠΊΠΈ - Π½Π΅Ρ.
Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΠΎΡΠΆΠΈΠΌΠ°,
[JsonConverter(typeof(StringEnumConverter))]
Π Π°Π±ΠΎΡΠ°Π΅Ρ ΠΎΡΠ»ΠΈΡΠ½ΠΎ.
Π‘ΠΏΡΡΡΡ 6 Π»Π΅Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π²ΡΠ΅ Π΅ΡΠ΅ Π²Π²ΠΎΠ΄ΠΈΠ»Π° ΠΌΠ΅Π½Ρ Π² Π·Π°Π±Π»ΡΠΆΠ΄Π΅Π½ΠΈΠ΅, ΡΡΠΎΠ±Ρ Ρ ΡΠΎΠ²Π΅ΡΡΠΈΠ» ΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ.
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΠΎΡΠΆΠΈΠΌΠ°,
Π Π°Π±ΠΎΡΠ°Π΅Ρ ΠΎΡΠ»ΠΈΡΠ½ΠΎ.