【问题标题】:ReSharper warning with inheritdoc and exception带有inheritdoc和异常的ReSharper警告
【发布时间】:2021-06-11 06:23:15
【问题描述】:

ReSharper 在类SpotBotClient 中显示“CallFailedException 未记录”的警告,而它应该从接口继承它。

当我执行以下操作时,它会消失:

/// <inheritdoc />
/// <exception cref="T:ElonMuskBot.Core.Exceptions.CallFailedException">Condition.</exception>
public override async Task<Balance> GetBalanceAsync(string asset, CancellationToken ct = default)
{
    var result = await _client.General.GetAccountInfoAsync(ct: ct).ConfigureAwait(false);

    if (!result.Success)
    {
        _logger.LogError(
            $"Error while getting Spot balance for {asset} | Error code: {result.Error?.Code} | Error message: {result.Error?.Message}");
        throw new CallFailedException(
            $"Error while getting Spot balance for {asset} | Error code: {result.Error?.Code} | Error message: {result.Error?.Message}");
    }

    return result.Data.Balances.FirstOrDefault(x => x.Asset.Equals(asset, StringComparison.OrdinalIgnoreCase))
        .ToBalance();
}

public interface IBotClient
{
    /// <summary>
    ///     Gets account balance for an asset.
    /// </summary>
    /// <param name="asset">The asset.</param>
    /// <param name="ct">Cancellation token.</param>
    /// <returns>The account balance.</returns>
    /// <exception cref="T:ElonMuskBot.Core.Exceptions.CallFailedException">Thrown if the call fails.</exception>
    Task<Balance> GetBalanceAsync(string asset, CancellationToken ct = default);
}

/// <summary>
///     Abstract base class for implementations of the <see cref="IBotClient" />.
/// </summary>
public abstract class BotClientBase : IBotClient
{
    private readonly IBinanceClient _client;
    private readonly IBinanceSocketClient _socketClient;

    protected BotClientBase(IBinanceClient client, IBinanceSocketClient socketClient)
    {
        _client = client;
        _socketClient = socketClient;
    }

    /// <inheritdoc />
    public abstract Task<Balance> GetBalanceAsync(string asset, CancellationToken ct = default);
}

public class SpotBotClient : BotClientBase
{
    private readonly ILogger<SpotBotClient> _logger;
    private readonly IBinanceClient _client;
    private readonly IBinanceSocketClient _socketClient;

    public SpotBotClient(ILogger<SpotBotClient> logger, IBinanceClient client, IBinanceSocketClient socketClient) :
        base(client, socketClient)
    {
        _logger = logger ?? throw new ArgumentNullException(nameof(logger));
        _client = client;
        _socketClient = socketClient;
    }

    /// <inheritdoc />
    public override async Task<Balance> GetBalanceAsync(string asset, CancellationToken ct = default)
    {
        var result = await _client.General.GetAccountInfoAsync(ct: ct).ConfigureAwait(false);

        if (!result.Success)
        {
            _logger.LogError(
                $"Error while getting Spot balance for {asset} | Error code: {result.Error?.Code} | Error message: {result.Error?.Message}");
            throw new CallFailedException(
                $"Error while getting Spot balance for {asset} | Error code: {result.Error?.Code} | Error message: {result.Error?.Message}");
        }

        return result.Data.Balances.FirstOrDefault(x => x.Asset.Equals(asset, StringComparison.OrdinalIgnoreCase))
            .ToBalance();
    }
}

【问题讨论】:

    标签: c# visual-studio resharper


    【解决方案1】:

    此特定检查并非来自 ReSharper 本身,而是来自 "Exceptional for ReSharper" 扩展。但是,正如我所见,您已经在 the GitHub repo 上提交了一个新问题。

    【讨论】:

    • 一个朋友做了,但是是的。
    猜你喜欢
    • 1970-01-01
    • 2015-11-15
    • 1970-01-01
    • 2016-04-08
    • 2013-03-02
    • 2011-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多