使用CoinGecko C# API报错:找不到CoinGeckoClient类型
问题解决:找不到CoinGeckoClient类型
核心原因
你使用的CoinGeckoClient类名不正确,在CoinGecko.Net包(3.4.0版本)中,官方客户端类名为CoinGeckoRestClient,而非CoinGeckoClient。同时代码中存在语法错误,初始化客户端时缺少括号。
修复步骤
1. 修正客户端类名
将所有CoinGeckoClient替换为CoinGeckoRestClient:
- 初始化客户端的代码
- 所有方法参数中的类型声明
2. 修复语法错误
客户端初始化语句末尾添加括号:
var coinGeckoClient = new CoinGeckoRestClient();
3. 清理冗余包
移除未使用的CoinGecko.API和CoinGeckoAsync包,仅保留CoinGecko.Net即可满足需求。
修正后的关键代码片段
客户端初始化
public static async Task Main(string[] args) { // 创建CoinGecko客户端 var coinGeckoClient = new CoinGeckoRestClient(); try { // ... 原有逻辑 } catch (Exception ex) { // ... 异常处理 } }
方法参数修正
// 获取市值前N的加密货币 private static async Task<List<string>> GetTopCryptosAsync(CoinGeckoRestClient client, int limit) { var coinsMarkets = await client.CoinsClient.GetCoinsMarkets("usd", null, null, null, null, false, "market_cap_desc", 1, limit); if (!coinsMarkets.Success) throw new Exception($"获取前{limit}加密货币失败: {coinsMarkets.Error}"); return coinsMarkets.Data.Select(coin => coin.Id).ToList(); }
同理,修改GetCryptoDataAsync和GetMultipleCryptoDataAsync方法中的参数类型为CoinGeckoRestClient。
验证项目依赖
确保你的项目文件中仅保留必要的包引用:
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>net9.0</TargetFramework> <ImplicitUsings>enable</ImplicitUsings> <Nullable>enable</Nullable> </PropertyGroup> <ItemGroup> <PackageReference Include="CoinGecko.Net" Version="3.4.0" /> <PackageReference Include="CsvHelper" Version="33.0.1" /> </ItemGroup> </Project>
完成以上修改后,重新生成项目即可解决找不到类型的错误。
内容的提问来源于stack exchange,提问作者Muzammil Elahi
相关产品推荐
相关产品推荐

