【问题标题】:Stripe.Net 21.4.1 removed 'List' method from 'BalanceService' objectStripe.Net 21.4.1 从“BalanceService”对象中删除了“List”方法
【发布时间】:2019-04-22 09:52:00
【问题描述】:

我将用于 .Net 的 Stripe.Net nuget 包从 19.+ 升级到 21.4.1,但在我这样做之后,我不得不对我的代码进行大量更改。我必须做的一项更改是从对象名称中删除所有 Stripe。

例如。 StripeBalanceService -> 平衡服务

当我这样做时,我注意到“BalanceService”对象丢失了“List”方法!我还在Stripe docs看到它

我是否在软件包或更新方面遗漏了什么? 还是 Stripe 把我搞砸了!?

这是显示缺失方法的屏幕截图

这里是可用于“BalanceService”对象的下拉列表。

这是我调用方法的代码

    private static void GetBalanceTranactionIds(string payoutId, ref List<string> balanceTransactionIds, string startingAfter)
    {
        var service = new BalanceService();
        var balanceOptions = new BalanceTransactionListOptions { Limit =100, PayoutId = payoutId };

        if (startingAfter != null)
            balanceOptions.StartingAfter = startingAfter;

        List<BalanceTransaction> balanceTransactions = service.List(balanceOptions);

        balanceTransactionIds.AddRange(balanceTransactions.Select(i => i.Id).ToList());

        if (balanceTransactions.Count() == 100)
            GetBalanceTranactionIds(payoutId, ref balanceTransactionIds, balanceTransactions.Last().Id);
    }

这是没有 List 的 BalanceService 对象。

public class BalanceService : Service<Balance>, ISingletonRetrievable<Balance>
{
    public BalanceService();
    public BalanceService(string apiKey);

    public override string BasePath { get; }

    public virtual Balance Get(RequestOptions requestOptions = null);
    public virtual Task<Balance> GetAsync(RequestOptions requestOptions = null, CancellationToken cancellationToken = default(CancellationToken));
}

【问题讨论】:

  • 你能发布代码而不是图片/图片吗?
  • Stripe.net v20 是该库的重大升级。从旧版本升级时有相当多的损坏更改,包括删除Stripe 前缀您可以参考github.com/stripe/stripe-dotnet/blob/master/… 以获取升级指南
  • 嗨 wsw,也许我快速阅读了该页面,但我没有看到任何关于已弃用方法的信息,例如我发布的方法!我错过了关于我的帖子的页面中的某些内容吗?此外,在 API 文档中,我仍然看到一个 .List() 方法。

标签: c# stripe-payments


【解决方案1】:

看起来 BalanceTransaction 功能已从 BalanceService.cs 中提取并移至其自己的类中。 你可以做类似的事情

var service = new BalanceTransactionService();
var balanceOptions = new BalanceTransactionListOptions { Limit = 100, PayoutId = payoutId }; 
service.BalanceTransactionService.ListAsync(balanceOptions);

更改参考:https://github.com/stripe/stripe-dotnet/commit/9c6e4e3c213fb8064e625a8e53b9bd306e641d6a#diff-3cef216515aac44aeefa3ba55153f755

【讨论】:

  • 请在答案中提供代码,而不是链接。
  • 当然@DeathWaltz。更新了答案。我看到了使更改对上下文有用的提交的链接。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-19
  • 1970-01-01
  • 1970-01-01
  • 2011-06-09
  • 1970-01-01
  • 2012-04-17
相关资源
最近更新 更多