Hi别闹 2017-01-17 07:41 采纳率: 100%
浏览 1997
已采纳

webapi项目外部类库中的实体作为参数,实体的描述不显示。如何配置

图片说明
图片说明
图片说明
图片说明
图片说明
意思是这个TB_Post类是在api中models定义的
Class1这个类是在类库中定义的
这俩个类都加了注释 TB_Post类的描述可以显示
Class1类的描述就显示不出来 如何才能让class1的描述也显示出来

  • 写回答

1条回答 默认 最新

  • Hi别闹 2017-01-23 09:48
    关注

    1、对引用的外部类库右键,属性,在生成里面点击“XML文档文件”,定义好生成的XML文件路径和名称。例如:bin\Debug\Models.XML 这里我是 Models.xml
    2、把类库的 XML 文件拷贝到 Web API 项目的 App_Data 文件夹下,并包含在项目中,这样就应该有两个XML文件。这里我是 Models.xml 和QCWebApi.XML
    (1)关于配置QCWebApi.XML的生成路径。在WebApi项目上面点右键→属性→生成→输出中点击选中xml文档文件并在右边的输入框中配置生成xml的路径 例如:App_Data\QCWebApi.XML
    3、在 Web API 项目中,修改(Areas/HelpPage/App_Start)HelpPageConfig.cs文件的Register方法 并在方法最后添加以下内容:(如果有,请修改)
    config.SetDocumentationProvider(new XmlDocumentationProvider(HttpContext.Current.Server.MapPath("~/App_Data")));
    添加后HelpPageConfig.cs文件的Register方法代码如下:
    public static void Register(HttpConfiguration config)
    {
    config.SetSampleForMediaType(
    new TextSample("Binary JSON content. See http://bsonspec.org for details."),
    new MediaTypeHeaderValue("application/bson"));
    config.SetDocumentationProvider(new XmlDocumentationProvider(HttpContext.Current.Server.MapPath("~/App_Data")));
    }
    4、修改(Areas/HelpPage)XmlDocumentationProvider.cs文件:
    (1).把私有变量 _documentNavigator 替换为:private List _documentNavigators = new List();
    (2).然后构造器修改为:
    public XmlDocumentationProvider(string documentPath)
    {
    if (documentPath == null)
    {
    throw new ArgumentNullException("documentPath");
    }
    //XPathDocument xpath = new XPathDocument(documentPath);
    //_documentNavigator = xpath.CreateNavigator();

    var files = new[] { "QCWebApi.XML", "Models.XML" };
    foreach (var file in files)
    {
        XPathDocument xpath = new XPathDocument(Path.Combine(documentPath, file));
        _documentNavigators.Add(xpath.CreateNavigator());
    }
    

    }
    (3).在构造器后面添加一个方法:
    private XPathNavigator SelectSingleNode(string selectExpression)
    {
    foreach (var navigator in _documentNavigators)
    {
    var propertyNode = navigator.SelectSingleNode(selectExpression);
    if (propertyNode!=null)
    {
    return propertyNode;
    }
    }
    return null;
    }
    (4).修复报错的地方(应该有三个地方报错),把 _documentNavigator.SelectSingleNode 替换为上面写的新方法: SelectSingleNode

    编译运行 Web API ,对于引用类库的类,已经有Description了(前提当然是这个类写了summary注释)。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料