【问题标题】:Generate model description in AspNet WebApi help pages在 AspNet WebApi 帮助页面中生成模型描述
【发布时间】:2020-04-27 21:19:32
【问题描述】:

如何在 Asp.Net Web Api 帮助页面中为我的模型生成描述

例子:

从示例中可以看出,我已经可以生成NameTypeAdditional Information。但是如何生成Description

我什么都没试过,而且我完全没有想法。

不,那不是真的。我尝试将 cmets 添加到我的 TransactionDto 类,但它不起作用。

/// <summary>
/// A DTO (Data Transfer Object) for Transaction objects.
/// </summary>
public class TransactionDto
{
    /// <summary>
    /// The manager who registered the transaction.
    /// </summary>
    public string FromId { get; set; }

    /// <summary>
    /// The receiving manager.
    /// </summary>
    [Required]
    public string ToId { get; set; }

    /// <summary>
    /// Optional expiration date.
    /// </summary>
    public DateTime? Expires { get; set; }

    /// <summary>
    /// Date the transaction was created.
    /// </summary>
    public DateTime Created { get; set; }
}

我已将HelpPageConfig.cs 配置为使用XmlDocumentationProvider,如下所示:

config.SetDocumentationProvider(new XmlDocumentationProvider(HttpContext.Current.Server.MapPath("~/App_Data/XmlDocument.xml")));

那么如何为模型生成这些描述呢?

【问题讨论】:

  • 您的项目属性中是否还有以下“已检查”:Properties | Build | Output | XML Documentation File

标签: c# asp.net asp.net-web-api


【解决方案1】:

我相信您在 Web API 项目之外的单独项目中有模型?

如果是这种情况,则 Web API 项目不知道为模型生成的帮助 XML 文件。您需要为 Web API 项目和模型项目设置 XML 输出路径,然后在 HelpPageConfig.cs 文件的 register 方法中合并这两个 XML 文件。

public static void Register(HttpConfiguration config)
{
        XmlDocument apiDoc = new XmlDocument();
        apiDoc.Load(HttpContext.Current.Server.MapPath("~/App_Data/WebApi.Orders.xml"));
        XmlDocument contractsDoc = new XmlDocument();
        contractsDoc.Load(HttpContext.Current.Server.MapPath("~/App_Data/Contracts.xml"));
        if (contractsDoc.DocumentElement != null && apiDoc.DocumentElement!=null)
        {
            XmlNodeList nodes = contractsDoc.DocumentElement.ChildNodes;
            foreach (XmlNode node in nodes)
            {
                XmlNode copiedNode = apiDoc.ImportNode(node, true);
                apiDoc.DocumentElement.AppendChild(copiedNode);
            }
            apiDoc.Save(HttpContext.Current.Server.MapPath("~/App_Data/WebApi.Orders.xml"));
        }
        config.SetDocumentationProvider(new XmlDocumentationProvider(HttpContext.Current.Server.MapPath("~/App_Data/WebApi.Orders.xml")));
    ......
}

【讨论】:

  • 谢谢,好主意,我的模型确实在另一个项目中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-08
  • 1970-01-01
  • 1970-01-01
  • 2013-09-07
  • 2015-10-06
相关资源
最近更新 更多