Skip to content
This repository was archived by the owner on Dec 24, 2022. It is now read-only.

Commit 27a8675

Browse files
committed
Add support for EnumMember in JSV/CSV
1 parent 16bb081 commit 27a8675

File tree

2 files changed

+19
-4
lines changed

2 files changed

+19
-4
lines changed

src/ServiceStack.Text/Jsv/JsvTypeSerializer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,7 @@ public void WriteEnumMember(TextWriter writer, object enumValue)
260260
var mi = enumType.GetMember(enumValue.ToString());
261261
var enumMemberAttr = mi[0].FirstAttribute<EnumMemberAttribute>();
262262
var useValue = enumMemberAttr?.Value ?? enumValue;
263-
writer.Write(enumValue.ToString());
263+
writer.Write(useValue.ToString());
264264
}
265265

266266
public object EncodeMapKey(object value)

tests/ServiceStack.Text.Tests/EnumTests.cs

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -234,13 +234,28 @@ class EnumMemberDto
234234
[Test]
235235
public void Does_serialize_EnumMember_Value()
236236
{
237-
var dto = new EnumMemberDto {Day = Day.Sunday};
237+
var dto = new EnumMemberDto { Day = Day.Sunday };
238+
238239
var json = dto.ToJson();
239-
240240
Assert.That(json, Is.EqualTo("{\"Day\":\"SUN\"}"));
241-
242241
var fromDto = json.FromJson<EnumMemberDto>();
243242
Assert.That(fromDto.Day, Is.EqualTo(Day.Sunday));
243+
244+
var jsv = dto.ToJsv();
245+
Assert.That(jsv, Is.EqualTo("{Day:SUN}"));
246+
fromDto = jsv.FromJsv<EnumMemberDto>();
247+
Assert.That(fromDto.Day, Is.EqualTo(Day.Sunday));
248+
249+
var csv = dto.ToCsv();
250+
Assert.That(csv.NormalizeNewLines(), Is.EqualTo("Day\nSUN\n".NormalizeNewLines()));
251+
}
252+
253+
[Test]
254+
public void Does_serialize_EnumMember_enum()
255+
{
256+
Assert.That(Day.Sunday.ToJson(), Is.EqualTo("\"SUN\""));
257+
Assert.That(Day.Sunday.ToJsv(), Is.EqualTo("SUN"));
258+
Assert.That(Day.Sunday.ToCsv(), Is.EqualTo("SUN"));
244259
}
245260

246261
}

0 commit comments

Comments
 (0)