3

HotChocolate はすべての上位カタツムリ ケースで列挙値をシリアル化します。これは、列挙値がHot Chocolate のようFooBarに推論されることにつながりますが、FooBar を提供し、Hot Chocolate は を無視するようです。FOO_BARvalue.ToString()Enum.GetName(value)[EnumMember(Value = "FooBar")]

シリアライゼーションを好きなように変更するにはどうすればよいですか?

4

1 に答える 1

5

HotChocolate サーバー v11 は、既定で UPPER_SNAIL_CASE としてシリアル化される列挙値を既定値とする仕様の推奨事項に従います。

これは次のように変更できます。

    builder
        .AddConvention<INamingConventions>(new YourNamingConvention())

    public class YourNamingConvention
        : DefaultNamingConventions
    {
        public override NameString GetEnumValueName(object value)
        {
            if (value == null)
            {
                throw new ArgumentNullException(nameof(value));
            }
            return value.ToString().ToUpperInvariant(); // change this to whatever you like
        }
    }
于 2021-03-25T20:45:51.283 に答える