6K Star 11.8K Fork 4K

GVPdotNET China / Furion

 / 详情

可以让swagger 支持 inheritdoc 注释吗

已完成
创建于  
2022-05-26 01:08

💢 特别说明:如果 Issue 没有严格按照模板编写且未提供测试源码下载或 Git 测试仓库地址,则视为无效 Issue

/// <inheritdoc cref="ISysUserService" />
[ApiDescriptionSettings(Name = "User", Order = 0)]
public class SysUserService : ISysUserService, IDynamicApiController
{

输入图片说明

Furion 版本号

哪个版本号?


Web 项目类型

  • WebApi
  • Mvc
  • Razor Pages
  • Blazor Server
  • MinApp

描述你的问题

发生了什么?


异常堆栈信息

异常堆栈是什么?


测试项目代码

⚠⚠ 必须提供完整可运行且包含错误的 Git 仓库 DEMO,DEMO 提供最简单的错误逻辑代码,否则不予处理。⚠⚠

您的代码下载地址?


数据库信息

  • Sqlite
  • SqlServer
  • Mysql
  • Oracle
  • PGSql
  • Firebird
  • Cosmos

期待结果

期待的结果是?


评论 (14)

CyrusZhou 创建了任务

可以支持,下个版本就支持。

输入图片说明

输入图片说明

输入图片说明

已实现,今天发版更新。

功能已实现:ef459be

百小僧 任务状态待办的 修改为已完成

v3.3.2版本已发布。

已支持 <inheritdoc /> 写法,下个版本发布

输入图片说明

输入图片说明

v3.3.3 版本已发布

发现带参数的方法无法获取注释
输入图片说明
输入图片说明

感谢反馈,我彻底重写了这块了,现在支持所有类型,

测试代码

using Furion.DynamicApiController;

namespace Furion.Application
{
    /// <inheritdoc cref="ITestInheritdoc" />
    public class TestInheritdoc : ITestInheritdoc, IDynamicApiController
    {
        /// <inheritdoc cref="ITestInheritdoc.GetName"/>
        public string GetName()
        {
            return "Furion";
        }

        /// <inheritdoc />
        public string GetVersion()
        {
            return "3.3.3";
        }

        /// <inheritdoc />
        public string WithParams(string name)
        {
            throw new System.NotImplementedException();
        }

        /// <inheritdoc />
        public string WithParams2(int id, string name)
        {
            throw new System.NotImplementedException();
        }

        /// <inheritdoc />
        string ITestInheritdoc.Private(int id)
        {
            throw new System.NotImplementedException();
        }
    }

    /// <summary>
    /// 测试注释继承
    /// </summary>
    public interface ITestInheritdoc
    {
        /// <summary>
        /// 获取名称
        /// </summary>
        /// <returns></returns>
        string GetName();

        /// <summary>
        /// 获取版本
        /// </summary>
        /// <returns></returns>
        string GetVersion();

        /// <summary>
        /// 携带参数
        /// </summary>
        /// <param name="name"></param>
        /// <returns></returns>
        string WithParams(string name);

        /// <summary>
        /// 携带参数二
        /// </summary>
        /// <param name="id"></param>
        /// <param name="name"></param>
        /// <returns></returns>
        string WithParams2(int id, string name);

        /// <summary>
        /// 隐式实现接口
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        string Private(int id);
    }
}

测试结果

输入图片说明

代码改进

输入图片说明

输入图片说明

提交记录

5e9e6ba

反馈结果

非常感谢您再次对 <inheritdoc /> 提出需求,现在彻底支持了所有情况,同时也改进了查找性能。

v3.4.1 版已经发布

好评,再也不愁重复写接口和实现类的注释了

发现在 summary 中使用 的 inheritdoc 没有被翻译

操作步骤

  1. 打开 \app 的sln项目
    2.添加一个类
/// <summary>
/// test
/// </summary>
class A { }
  1. 调整 LoginAppService 类 的Post() 为
    /// <summary>
    /// 登录 <inheritdoc cref="A"/>
    /// </summary>
    /// <param name="_httpContextAccessor"></param>
    /// <param name="input"></param>
    /// <returns></returns>

swagger的运行结果如图
输入图片说明

然后VS的智能提示可以识别

输入图片说明

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(4)
974299 monksoul 1578937227 7893035 tire li 1597227415
C#
1
https://gitee.com/dotnetchina/Furion.git
git@gitee.com:dotnetchina/Furion.git
dotnetchina
Furion
Furion

搜索帮助