如何在Asp.Net Web Api帮助页面中为我的模型生成描述?
示例:
从示例中可以看出,我已经可以生成Name
,Type
和Additional 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")));
那么如何为模型生成这些描述?
答案 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")));
......
}