c# - 可以在 ApiMember 属性和 xmldoc 摘要注释中使用相同的描述吗?
问题描述
在我的 API 模型程序集中,我大量使用该ApiMember
属性来为 Swagger UI 的属性提供描述,例如
public class FindVendorItems : IReturn<List<VendorItem>>, IGet
{
[ApiMember(Descripton = Description.ItemId)]
public int ItemId { get; set; }
}
描述是静态Description
类中的常量字符串,因此它们可以在整个模型中使用以保持描述的一致性。
这对 Swagger 很有用,但我想解决的问题是将这些相同的描述放入 XML 文档注释的摘要标记中,以便它们在 Visual Studio 中可用和可见。我不想将常量中的描述复制/粘贴到摘要标签中,因为事实证明它容易出错,并且两者很快就会不同步。
public class FindVendorItems : IReturn<List<VendorItem>>, IGet
{
/// <summary>
/// Same Description.ItemId here
/// </summary>
[ApiMember(Descripton = Description.ItemId)]
public int ItemId { get; set; }
}
有没有办法自动做到这一点?即使它在 Visual Studio 中不可见,只要生成生成的 XML 文件包含所有描述,这样就可以在使用由此生成的 NuGet 包时提供 IntelliSense。
解决方案
这是不可能的,因为执行 .NET 代码无权访问.xml
包含开发工具和 IDE 可以访问的 XML API 文档的外部文件。
ServiceStack 支持动态添加属性,因此有可能使用一些外部代码生成工具来解析 XML 文档文件并生成 C# 代码以在启动时将文档属性动态添加到您的 DTO 类型。
推荐阅读
- elasticsearch - AND 在字符串数组中搜索 Elasticsearch
- c - 试图让计算机猜测我的号码,但获得工作的上限和下限
- oracle - 自治数据库是否提供与本地数据库相同的 NLS 支持?
- c# - 如何在 C# 中使用正则表达式查找和替换较大文件 (150MB-250MB) 中的文本?
- c# - C#调用基接口的默认实现
- java - Java awt not shown in eclipse
- python - Values on dataframe dont appear with decimals
- sql - 如何计算数组GBQ中的重复值?
- mysql - MySQL master pushes old bin log after Heartbeat event
- python - 在 Python 中使用 SAX 解析器的标签之间的文本