Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net web api 扩展webapi 2.1';s帮助页以包含其他数据_Asp.net Web Api_Asp.net Web Api2_Asp.net Web Api Helppages - Fatal编程技术网

Asp.net web api 扩展webapi 2.1';s帮助页以包含其他数据

Asp.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) {

我在微软找到了姚明写的一篇很过时的帖子

我已尝试实施这些步骤,但无法在帮助文档中显示自定义注释

在我的范围内

XmlDocumentationProvider.cs

我已经更新了

HelpPageModel.cs

包括

我最后更新的是GenerateApiModel

 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")));