如何在webAPI项目中公开方法?

时间:2013-09-26 20:51:14

标签: c# reflection asp.net-web-api wcf-web-api

我如何以编程方式获取具有我的webAPI项目中公开的参数的公共方法列表?我需要将此列表提供给我们的QA部门。我不想自己编译和维护列表。我想为质量保证提供一个链接,以便自己找到这些方法。我需要的东西就像你浏览.asmx文件时得到的东西。

3 个答案:

答案 0 :(得分:6)

ASP.NET Web API允许您自动创建帮助页面。该帮助页面记录了API提供的所有端点。请参阅此博文:Creating Help Pages for ASP.NET Web API

当然,您可以通过利用IApiExplorer界面创建完全自定义的文档。

答案 1 :(得分:0)

您可以尝试这样的事情:

public static void Main() 
    {
        Type myType =(typeof(MyTypeClass));
        // Get the public methods.
        MethodInfo[] myArrayMethodInfo = myType.GetMethods(BindingFlags.Public|BindingFlags.Instance|BindingFlags.DeclaredOnly);
        Console.WriteLine("\nThe number of public methods is {0}.", myArrayMethodInfo.Length);
        // Display all the methods.
        DisplayMethodInfo(myArrayMethodInfo);
        // Get the nonpublic methods.
        MethodInfo[] myArrayMethodInfo1 = myType.GetMethods(BindingFlags.NonPublic|BindingFlags.Instance|BindingFlags.DeclaredOnly);
        Console.WriteLine("\nThe number of protected methods is {0}.", myArrayMethodInfo1.Length);
        // Display information for all methods.
        DisplayMethodInfo(myArrayMethodInfo1);      
    }
    public static void DisplayMethodInfo(MethodInfo[] myArrayMethodInfo)
    {
        // Display information for all methods. 
        for(int i=0;i<myArrayMethodInfo.Length;i++)
        {
            MethodInfo myMethodInfo = (MethodInfo)myArrayMethodInfo[i];
            Console.WriteLine("\nThe name of the method is {0}.", myMethodInfo.Name);
        }
    }

我是从here

得到的

答案 2 :(得分:0)

这是Scott Gu的一句话,它回答了你的问题:

  
    

Web API不直接支持WSDL或SOAP。如果要使用基于WCF / WSDL的模型来支持SOAP和REST,则可以使用WCF REST支持。

  

您的问题也在这里被问到并回答: ASP.NET Web API interface (WSDL)

希望有所帮助。