在AspNet WebApi帮助页面中生成模型描述

tra*_*m_3 6 c# asp.net asp.net-web-api

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

例:

在此输入图像描述

从示例中可以看出,我已经可以生成了Name,TypeAdditional Information.但是我该如何产生Description

我什么都没试过,我全都没有想法.

不,那不是真的.我已经尝试在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; }
}
Run Code Online (Sandbox Code Playgroud)

我已配置HelpPageConfig.cs使用XmlDocumentationProvider如下:

config.SetDocumentationProvider(new XmlDocumentationProvider(HttpContext.Current.Server.MapPath("~/App_Data/XmlDocument.xml")));
Run Code Online (Sandbox Code Playgroud)

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

Nor*_*tar 11

我认为你在Web api项目以外的单独项目中有模型吗?

如果是这种情况,web api项目不知道为模型生成的帮助xml文件.您需要为webapi项目和模型项目设置xml输出路径,然后将这两个xml文件合并到HelpPageConfig.cs文件的register方法中.

public static void Register(HttpConfiguration config)
{
        XmlDocument apiDoc = new XmlDocument();
        apiDoc.Load(HttpContext.Current.Server.MapPath("~/App_Data/VonExpy.AD.WebApi.Orders.xml"));
        XmlDocument contractsDoc = new XmlDocument();
        contractsDoc.Load(HttpContext.Current.Server.MapPath("~/App_Data/VonExpy.AD.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/VonExpy.AD.WebApi.Orders.xml"));
        }
        config.SetDocumentationProvider(new XmlDocumentationProvider(HttpContext.Current.Server.MapPath("~/App_Data/VonExpy.AD.WebApi.Orders.xml")));
    ......
}
Run Code Online (Sandbox Code Playgroud)