Тип: байт не может быть эффективно приведен к типу GraphQL.

Вот код, который я использую для получения типа ByteArrayContent:

public class ImageDTO : APIResult
{
    public byte[] ImageData
    {
        get;
        set;
    }

    public string ImageFormat
    {
        get;
        set;
    }

    public ImageDTO()
    {
        ImageData = new byte[]{};
    }
}

public class ImageType : ObjectGraphType<ImageDTO>, IGraphQLType
{
    public ImageType()
    {
        Field(img => img.ImageData);
        Field(img => img.ImageFormat);
    }
}

public class ImageResolver : Resolver, IImageResolver
{
    private readonly ICommonService _commonService;
    public ImageResolver(ICommonService commonService)
    {
        _commonService = commonService;
    }

    public void Resolve(GraphQLQuery graphQLQuery)
    {
        graphQLQuery.Field<ResponseGraphType<ImageType>>("imageresponse", arguments: new QueryArguments(new QueryArgument<NonNullGraphType<StringGraphType>>{Name = "imageId", Description = "id of the project"}), resolve: context =>
        {
            var imageId = context.GetArgument<string>("imageId");
            var imageResult = _commonService.GetImage(imageId);
            if (imageResult == null)
            {
                return NotFoundError(imageId);
            }

            return Response(imageResult);
        }

        );
    }
}

При выполнении приведенного выше кода я получаю указанную ниже ошибку. Тип: байт не может быть эффективно приведен к типу GraphQL\r\nИмя параметра: тип\r\n в типе GraphQL.

По ссылке: https://github.com/graphql-dotnet/graphql-dotnet/issues/458 упоминается, что поддерживается ByteGraphType. Я использую пакет nuget GraphQL.net с версией: 2.3.0. Поэтому я считаю, что он должен поддерживать ByteGraphType.

Не могли бы вы помочь мне здесь, чтобы узнать, как решить эту проблему.


person santosh kumar patro    schedule 30.11.2018    source источник


Ответы (1)


вместо этой строки => Field(img => img.ImageData);

вы можете использовать это => Field(img => img.ImageData, type: typeof(IdGraphType));

person Amit Roman    schedule 18.02.2019