GQL008: Don't use an obsolete 'Argument' method

Value
Rule ID GQL008
Category Usage
Default severity Warning
Enabled by default Yes
Code fix provided Yes
Introduced in v7.7

Cause

This rule triggers when the obsolete Argument<TArgumentGraphType, TArgumentType>() method with two type parameters was used on the field builder.

Rule description

The method overload Argument<TArgumentGraphType, TArgumentType>(name, description, defaultValue, configure) is obsolete and will be remove in future version.

How to fix violations

Use Argument<TArgumentGraphType>() method overload with a single generic type parameter. Use Action<QueryArgument> parameter to configure default argument value.

Example of a violation

Field<StringGraphType>("Text").Argument<StringGraphType, string>(
    "arg",
    "description",
    "MyDefault");

Field<StringGraphType>("Text").Argument<StringGraphType, string>(
    "arg",
    "description",
    "MyDefault",
    argument => argument.DeprecationReason = "Deprecation Reason");

Example of how to fix

Field<StringGraphType>("Text").Argument<StringGraphType>(
    "arg",
    "description",
    argument => argument.DefaultValue = "MyDefault");

Field<StringGraphType>("Text").Argument<StringGraphType>(
    "arg",
    "description",
    argument =>
    {
        argument.DeprecationReason = "Deprecation Reason";
        argument.DefaultValue = "MyDefault";
    });

Suppress a warning

If you just want to suppress a single violation, add preprocessor directives to your source file to disable and then re-enable the rule.

#pragma warning disable GQL008
// The code that's violating the rule is on this line.
#pragma warning restore GQL008

To disable the rule for a file, folder, or project, set its severity to none in the configuration file.

[*.cs]
dotnet_diagnostic.GQL008.severity = none

For more information, see How to suppress code analysis warnings.