Тип: Байт не может быть эффективно приведен к типу GraphQL. - PullRequest
0 голосов
/ 30 ноября 2018

Вот код, который я использую для получения типа 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.

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

1 Ответ

0 голосов
/ 18 февраля 2019

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

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

...