ServiceStack.TextのEnumMember属性を使用してnull許容列挙型を逆シリアル化するにはどうすればよいですか?

オットーウルペライネン

これはについての私のこれら二つの以前の質問への質問のフォローアップであるServiceStack.Textまず第二これらの質問への回答を確認するとわかるように、データコントラクトEnumMember属性に基づいて列挙型をシリアル化および逆シリアル化することができます。しかし、null許容の列挙、つまりEnumType?についてはどうでしょうかServiceStack.Textを使用して、EnumMember属性を使用してこれらをシリアル化することは可能ですか?ServiceStack.Text 5.2.0を使用すると、次のコードが表示されます。

namespace TestNameSpace
{
    using ServiceStack;
    using System;
    using System.Runtime.Serialization;

    class TestClass
    {
        [DataContract]
        enum TestEnum
        {
            [EnumMember(Value = "enum_value")]
            EnumValue = 0,
        }

        static void Main(string[] args)
        {
            TestEnum? nullableEnum = TestEnum.EnumValue;
            Console.WriteLine($"nullableEnum.ToJson: {nullableEnum.ToJson()}");
            Console.WriteLine($"nullableEnum.ToCsv: {nullableEnum.ToCsv()}");
            Console.WriteLine($"nullableEnum.ToJsv: {nullableEnum.ToJsv()}");
            Console.WriteLine($"nullableEnum.ToXml: {nullableEnum.ToXml()}");
        }
    }
}

以下を出力します。

nullableEnum.ToJson: "EnumValue"
nullableEnum.ToCsv: EnumValue
nullableEnum.ToJsv: EnumValue
nullableEnum.ToXml: <?xml version="1.0" encoding="utf-8"?><TestClass.TestEnum xmlns="http://schemas.datacontract.org/2004/07/TestNameSpace">enum_value</TestClass.TestEnum>

私はすべての出力形式がを持っていることを期待しますがenum_valueServiceStack.Textでこれを達成することは可能ですか?

神話

このコミットから解決されるはずです。この変更は、MyGetで利用できるようになったv5.2.1から利用できます

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ