VS 2017 WebAPI Help Page - No Document Provided

前端 未结 3 1477
春和景丽
春和景丽 2021-01-13 18:18

I have followed the steps at MSDN, and other SO questions, to setup documenting and to have the XML comments show in the descriptions section of the help page. However, I am

相关标签:
3条回答
  • 2021-01-13 19:14

    You can do this properly by

    1) If you don't have an App_Data folder, add it by right clicking on the project in Solution Explorer, then Add | Add Asp.Net Folder | App_Data

    2) Go to the Build section of Project Properties. Under Output, check XML documentation file. In the edit box, type "App_Data/XmlDocument.xml"

    Instructions can be found in this link

    .

    0 讨论(0)
  • 2021-01-13 19:16

    I know this answer comes very late, but I ran into the same problem. I could not get Visual Studio 2017 to output the XML Documentation file to the suggested ~/App_Data/XmlDocument.xml location.

    However, I found that the correct file is generated under ~/bin/<project name>.xml. So if your project is "TestWebAPI2", then this file should be ~/bin/TestWebAPI2.xml.

    (I couldn't see if there was a way to move/copy this file to ~/App_Data, but I didn't look for a very long time)

    To get this working, go to ~/Areas/HelpPage/App_Start/HelpPageConfig.vb and change the following line to suit:

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

    becomes

    config.SetDocumentationProvider(New XmlDocumentationProvider(HttpContext.Current.Server.MapPath("~/bin/<yourprojectname>.xml")))
    

    (don't forget to replace <yourprojectname> with your WebAPI2 project name)

    0 讨论(0)
  • 2021-01-13 19:16

    API help not show Body Parameters descriptions. In class properties missing description info. Just add DescriptionAttribute to property:

        [Description("Simple description")]
        public string Text { get; set; }
    

    This is my fix:

                public string GetDocumentation(MemberInfo member)
                {
                    string memberName = String.Format(CultureInfo.InvariantCulture, "{0}.{1}", GetTypeName(member.DeclaringType), member.Name);
                    string expression = member.MemberType == MemberTypes.Field ? FieldExpression : PropertyExpression;
                    string selectExpression = String.Format(CultureInfo.InvariantCulture, expression, memberName);
                    XPathNavigator propertyNode = _documentNavigator.SelectSingleNode(selectExpression); 
                    var result = GetTagValue(propertyNode, "summary") ?? GetDescription(member);
                    return result; 
                }
                private static string GetDescription(MemberInfo memberInf)
                {
                    var result = (memberInf.GetCustomAttribute(typeof(DescriptionAttribute)) as DescriptionAttribute)?.Description;
                    return result;
                }
    

    screenshot

    0 讨论(0)
提交回复
热议问题