zoukankan      html  css  js  c++  java
  • webapi help 多XML设置

    webapi help具体配置这里不做太多介绍。一般情况下项目都会分层,webapi help 官方给出的实例是在同一个项目下。

    如何支持多个项目呢?

    1.在HelpPage下增加 MultiXmlDocumentationProvider.cs文件

     1 public class MultiXmlDocumentationProvider : IDocumentationProvider, IModelDocumentationProvider  
     2     {
     3         /********* 
     4        ** Properties 
     5        *********/
     6         /// <summary>The internal documentation providers for specific files.</summary>  
     7         private readonly XmlDocumentationProvider[] Providers;
     8 
     9 
    10         /********* 
    11         ** Public methods 
    12         *********/
    13         /// <summary>Construct an instance.</summary>  
    14         /// <param name="paths">The physical paths to the XML documents.</param>  
    15         public MultiXmlDocumentationProvider(params string[] paths)
    16         {
    17             this.Providers = paths.Select(p => new XmlDocumentationProvider(p)).ToArray();
    18         }
    19 
    20         /// <summary>Gets the documentation for a subject.</summary>  
    21         /// <param name="subject">The subject to document.</param>  
    22         public string GetDocumentation(MemberInfo subject)
    23         {
    24             return this.GetFirstMatch(p => p.GetDocumentation(subject));
    25         }
    26 
    27         /// <summary>Gets the documentation for a subject.</summary>  
    28         /// <param name="subject">The subject to document.</param>  
    29         public string GetDocumentation(Type subject)
    30         {
    31             return this.GetFirstMatch(p => p.GetDocumentation(subject));
    32         }
    33 
    34         /// <summary>Gets the documentation for a subject.</summary>  
    35         /// <param name="subject">The subject to document.</param>  
    36         public string GetDocumentation(HttpControllerDescriptor subject)
    37         {
    38             return this.GetFirstMatch(p => p.GetDocumentation(subject));
    39         }
    40 
    41         /// <summary>Gets the documentation for a subject.</summary>  
    42         /// <param name="subject">The subject to document.</param>  
    43         public string GetDocumentation(HttpActionDescriptor subject)
    44         {
    45             return this.GetFirstMatch(p => p.GetDocumentation(subject));
    46         }
    47 
    48         /// <summary>Gets the documentation for a subject.</summary>  
    49         /// <param name="subject">The subject to document.</param>  
    50         public string GetDocumentation(HttpParameterDescriptor subject)
    51         {
    52             return this.GetFirstMatch(p => p.GetDocumentation(subject));
    53         }
    54 
    55         /// <summary>Gets the documentation for a subject.</summary>  
    56         /// <param name="subject">The subject to document.</param>  
    57         public string GetResponseDocumentation(HttpActionDescriptor subject)
    58         {
    59             return this.GetFirstMatch(p => p.GetDocumentation(subject));
    60         }
    61 
    62 
    63         /********* 
    64         ** Private methods 
    65         *********/
    66         /// <summary>Get the first valid result from the collection of XML documentation providers.</summary>  
    67         /// <param name="expr">The method to invoke.</param>  
    68         private string GetFirstMatch(Func<XmlDocumentationProvider, string> expr)
    69         {
    70             return this.Providers
    71                 .Select(expr)
    72                 .FirstOrDefault(p => !String.IsNullOrWhiteSpace(p));
    73         }  
    74     }

    2.修改/HelpPage/App_Start/HelpPageConfig.cs,原先的不用使用。

    config.SetDocumentationProvider(new MultiXmlDocumentationProvider(HttpContext.Current.Server.MapPath("~/Areas/HelpPage/Model.XML"), HttpContext.Current.Server.MapPath("~/Areas/HelpPage/WebApiHelp.XML")));  
  • 相关阅读:
    servlet中doGet()和doPost()的区别
    Hibernate 的getHibernateTemplate()方法使用
    c3p0 数据库连接池
    java 事务处理的概念
    hibernate 关联映射
    java 迭代器
    struts 值桟问题
    struts 属性驱动与模型驱动
    java 单例模式
    XML Node和Element
  • 原文地址:https://www.cnblogs.com/wrhming/p/6092493.html
Copyright © 2011-2022 走看看