c# - .Net Core 3.1 使用来自 C#/WPF 的 GraphQLHttpClient 卡住 - 但适用于 ConsoleApp
问题描述
我创建了一个小型 GraphQl 服务器——它在 Banana Cake Pop 中运行得非常好。
然后我创建了一个小型C#/.Net Core 3.1 WPF 应用程序- 它有一个使用GraphQL.Client 3.2.2和GraphQL.Client.Serializer.Newtonsoft 3.2.2的类库
它还有一个像这样的类来调用 GraphQL Endpoint:
public class RepositoryBase
{
protected GraphQLHttpClient GraphQLHttpClient { get; private set; }
public RepositoryBase()
{
GraphQLHttpClient = new GraphQLHttpClient("http://xxx/graphql/",
new NewtonsoftJsonSerializer());
}
}
public class ArtRepository : RepositoryBase
{
public List<Art> GetArterByGruppe(short GruppeId)
{
var queryString = @"query { arter(where: { and:[{ gruppeId: { eq: 1200} } { su: { eq: false} } { setIDk: { eq: true} }]}
order: {artNavn:ASC}) {
artNavn
artId
gruppe {
gruppeNavn
gruppeId
}
}
}";
var request = new GraphQLRequest
{
Query = queryString
};
var result = GraphQLHttpClient.SendQueryAsync<ArtResponse>(request).ConfigureAwait(false);
return result.GetAwaiter().GetResult().Data.Arter;
}
}
如果我从 WPF 应用程序调用此方法 - 就像在 Windows Loaded 事件中一样 - 对 GrapQl 服务器的调用会卡住 - 没有错误。
var repository = new ArtRepository();
var x = repository.GetArterByGruppe(1700);
所以 - 绝望 - 我在 WPF 解决方案中创建了一个ConsoleApp 项目- 对 ArtRepository 类进行相同的调用 - 它运行得非常好并返回数据。
我不明白 WPF 应用程序如何以卡住的方式影响 GraphQL 客户端?
解决方案
推荐阅读
- java - 在词法分析器规则 Antlr4 中匹配 EOF 标记
- vue.js - Elasticsearch 不接受大小
- c++ - 如何将特定列保存到 C++ 中的数组中?
- python-3.x - 检测平面图中的墙壁
- postgresql - 如何获取具有引用主表的外键的表的表名和列名?
- laravel - Laravel 迁移:无法将 FK 添加到两种字符串类型
- typescript - 如何有条件地从 Typescript 中的接口中删除属性
- spring-boot - spring-boot:用于动态查询的 jpql 无法正常工作,返回数据的空列表
- javascript - 我将如何遍历这个数组并基于正则表达式呈现一个表?
- reactjs - 在 aws amplify react js 应用程序中访问 SSM 参数存储值