第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

您可以使用原始 graphQL 語法使用 octokit.net 庫在 C# 中查詢

您可以使用原始 graphQL 語法使用 octokit.net 庫在 C# 中查詢

C#
郎朗坤 2023-09-16 19:59:35
我正在嘗試使用 graphQL 來查詢存儲庫及其內(nèi)容,但無法弄清楚如何在 LinQ 中構(gòu)建所需的查詢。有什么方法可以執(zhí)行原始 GraphQL 查詢而不使用 LinQ 語法嗎?我的函數(shù)GraphQL查詢?nèi)缦滤荆簕  repositoryOwner(login: "userLogin") {    repositories(first: 99) {      nodes {        name        rootFolder: object(expression: "master:") {          id          ... on Tree {            entries {              name              object {                ... on Blob {                  byteSize                }              }            }          }        }      }    }  }}使用LinQ語法我得到了這一點(diǎn):var query = new Query()   .RepositoryOwner("userLogin")   .Repositories(first: 99)   .Nodes.Select(repo => new   {       repo.Name   }).Compile();var result = await connection.Run(query);我找不到在 Blob 選擇器上實(shí)現(xiàn)這些的方法編輯:Cyril Durand的答案有效,但不幸的是沒有使用 Octokit.net 客戶端,因此您無法將結(jié)果解析為上述庫中包含的類。您可以做的是創(chuàng)建自定義類以完全適合 json 結(jié)果。首先你查詢數(shù)據(jù)。var result = await Connection.PostQueryAsync(@"{    user(login: """ + userName + @""") {      login      avatarUrl    }   }");然后將其設(shè)為 JSON 字符串。(需要Newtonsoft.Json庫)string JsonString = result.Data.user.ToString(Formatting.None);并且您使用json2csharp轉(zhuǎn)換器,它使用 JSON 字符串中的屬性創(chuàng)建精確的類。對于此查詢,生成的類如下所示class User{    public string login { get; set; }    public string avatarUrl { get; set; }}現(xiàn)在您可以使用您的數(shù)據(jù)。這種方法不是最好的,但解決了我的大部分查詢問題,因此我將其標(biāo)記為正確答案。如果您有更好的解決方案的想法(也許您可以實(shí)際使用 octokit 庫),請隨時(shí)回答:)
查看完整描述

1 回答

?
不負(fù)相思意

TA貢獻(xiàn)1777條經(jīng)驗(yàn) 獲得超10個(gè)贊

您可以使用GraphQl.Clientnuget 包并使用原始 graphql 查詢:

var client = new GraphQLClient("https://api.github.com/graphql");

client.DefaultRequestHeaders.Add("Authorization", $"bearer {token}");

client.DefaultRequestHeaders.Add("User-Agent", userLogin );

var result = await client.PostQueryAsync(@"{

? repositoryOwner(login: """ + userLogin + @""") {

? ? repositories(first: 99) {

? ? ? nodes {

? ? ? ? name

? ? ? ? rootFolder: object(expression: ""master:"") {

? ? ? ? ? id

? ? ? ? ? ... on Tree {

? ? ? ? ? ? entries {

? ? ? ? ? ? ? name

? ? ? ? ? ? ? object {

? ? ? ? ? ? ? ? ... on Blob {

? ? ? ? ? ? ? ? ? byteSize

? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? }

? ? ? ? ? ? }

? ? ? ? ? }

? ? ? ? }

? ? ? }

? ? }

? }

}");

然后使用類似的方法訪問結(jié)果:


var size = result.Data.repositoryOwner.repositories.nodes[0].rootFolder.entries[0].@object.byteSize;



查看完整回答
反對 回復(fù) 2023-09-16
  • 1 回答
  • 0 關(guān)注
  • 140 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號