GraphQL.Client System.NullReferenceException
Впервые в GraphQL. Использование библиотеки GraphQL.Client в консольном приложении c # .net core 3.1.
Я пытаюсь заставить подписку работать и каждый раз получаю следующее:
Я могу заставить запрос работать, поэтому я знаю, что правильно добавил заголовок auth в свой клиент GraphQL.
Оскорбительный фрагмент кода: (фактически скопирован / вставлен из того, что я нашел).
Документация тоже выглядит очень простой реализацией:
https://github.com/graphql-dotnet/graphql-client
private IDisposable CreateSubscription()
{
var thisRequest= SubscriptionCreator.CreateMessageUpdatedRequest(DateTime.Now);
var stream = GraphClient.CreateSubscriptionStream<MessageUpdted>(thisRequest);
return stream.Subscribe(
response => Console.WriteLine($"{response.Data.messageUpdated.id}"),
exception => Console.WriteLine($"{request.OperationName}: message subscription stream failed: {exception}"),
() => Console.WriteLine($"{request.OperationName}: message subscription stream completed"));
}
Некоторые примеры моделей:
public class MessageUpdated
{
public MessageUpdate messageUpdated { get; set; }
}
public class MessageUpdate
{
public string id { get; set; }
}
Я настолько новичок в этом, что даже не знаю, действительно ли я "подписываюсь" на правильную модель в моем
.CreateSubscription<>
вызов.
Создание подписки (жестко запрограммированный требуемый формат даты):
public static class Subscriptions
{
public static string BasicMessage= @"
subscription MessageUpdateBasic($date:Time!){
messageUpdated(dated:$date)
{
id
}
}
";
}
public static class SubscriptionCreator
{
public static GraphQLRequest CreateMessageUpdatedRequest(DateTime date)
{
return new GraphQLRequest()
{
Query = Subscriptions.BasicMessage,
OperationName = "BasicMessageSubscription",
Variables = new { date = "2021-10-21T00:00:00Z"}
};
}
}