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

时间:2015-05-31 20:18:07

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

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

示例:

enter image description here

从示例中可以看出,我已经可以生成NameTypeAdditional 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; }
}

我已将HelpPageConfig.cs配置为使用XmlDocumentationProvider,如此:

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

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

1 个答案:

答案 0 :(得分: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")));
    ......
}