Asp.net web api 扩展webapi 2.1';s帮助页以包含其他数据
我在微软找到了姚明写的一篇很过时的帖子 我已尝试实施这些步骤,但无法在帮助文档中显示自定义注释 在我的范围内 XmlDocumentationProvider.cs 我已经更新了 HelpPageModel.cs 包括 我最后更新的是GenerateApiModelAsp.net web api 扩展webapi 2.1';s帮助页以包含其他数据,asp.net-web-api,asp.net-web-api2,asp.net-web-api-helppages,Asp.net Web Api,Asp.net Web Api2,Asp.net Web Api Helppages,我在微软找到了姚明写的一篇很过时的帖子 我已尝试实施这些步骤,但无法在帮助文档中显示自定义注释 在我的范围内 XmlDocumentationProvider.cs 我已经更新了 HelpPageModel.cs 包括 我最后更新的是GenerateApiModel private static HelpPageApiModel GenerateApiModel(ApiDescription apiDescription, HttpConfiguration config) {
private static HelpPageApiModel GenerateApiModel(ApiDescription apiDescription, HttpConfiguration config)
{
HelpPageApiModel apiModel = new HelpPageApiModel()
{
ApiDescription = apiDescription,
};
var responseDocProvider =
config.Services.GetDocumentationProvider() as XmlDocumentationProvider.ICustomCommentProvider;
if (responseDocProvider != null)
{
apiModel.CustomMessage = responseDocProvider.GetCustomComment(apiDescription.ActionDescriptor);
}
每次运行应用程序responseDocProvider时都为null。有没有什么突出的地方看起来像是我做错了
非常感谢您对该问题的帮助您需要设置文档提供者。您可以取消注释
Areas\HelpPage\App\u Start\HelpPageConfig.cs
//// Uncomment the following to use the documentation from XML documentation file.
//config.SetDocumentationProvider(new XmlDocumentationProvider(HttpContext.Current.Server.MapPath("~/App_Data/XmlDocument.xml")));
评论的回答(Kiran Challa):
但这不会正常工作..因为您的类型没有实现该接口,并且您正在尝试对其进行强制转换..更改
XmlDocumentationProvider
实现ICustomCommentProvider
接口
然后做一个
var responseDocProvider=config.Services.GetDocumentationProvider()作为ICustomCommentProvider代码>你好,基兰。我已经完成了这个步骤,所有其他默认属性都显示出来了。在GenerateApiModel中没有返回它唯一的属性。我已经检查了xml文档,其中包含了自定义注释。@DiverDan:我无法重新编写您的问题(不过我在5.0版本中尝试过)…你能分享一下你的XmlDocumentationProvider
类的实现吗…它是否也实现了ICustomCommentProvider
接口?我刚刚用XmlDocumentationProvider更新了我的帖子。我相信我是在GenerateApiModel方法var responseDocProvider=config.Services.GetDocumentationProvider()中实现接口的,作为XmlDocumentationProvider.ICustomCommentProvider;但这不会正常工作..因为您的类型没有实现该接口,并且您正在尝试强制转换到该接口..将XmlDocumentationProvider更改为实现ICustomCommentProvider
接口,并作为ICustomCommentProvider执行var responseDocProvider=config.Services.GetDocumentationProvider()代码>
public string CustomMessage { get; set; }
private static HelpPageApiModel GenerateApiModel(ApiDescription apiDescription, HttpConfiguration config)
{
HelpPageApiModel apiModel = new HelpPageApiModel()
{
ApiDescription = apiDescription,
};
var responseDocProvider =
config.Services.GetDocumentationProvider() as XmlDocumentationProvider.ICustomCommentProvider;
if (responseDocProvider != null)
{
apiModel.CustomMessage = responseDocProvider.GetCustomComment(apiDescription.ActionDescriptor);
}
//// Uncomment the following to use the documentation from XML documentation file.
//config.SetDocumentationProvider(new XmlDocumentationProvider(HttpContext.Current.Server.MapPath("~/App_Data/XmlDocument.xml")));