我有一个休息服务网址如下 http://XXXXXXXX/RestServices/Project.svc
这个SVC有两种方法,
[OperationContract]
[WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Bare, UriTemplate = "UserLogin")]
ResultInfo Login(Login objLogin);
[OperationContract]
[WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Bare, UriTemplate = "SaveUser")]
ResultInfo User(User objUser);
方法名称是Login和User,但UriTemplate Names是UserLogin和SaveUser。
我想获得C#列表中的输出,如下所示
UserLogin
SaveUser
需要你的帮助。
答案 0 :(得分:0)
您可以使用以下方法获取方法名称
在ASPX页面中:
<asp:ListBox ID="lstMethodName" runat="server" Visible="true" AutoPostBack="true"
Style="height: 150px; width:300px; overflow: auto;"></asp:ListBox>
代码背后:
string wsdlUrl = "http://XXXXXXXX/RestServices/Project.svc?wsdl"; // WCF wsdl address
XmlTextReader myReader = new XmlTextReader(wsdlUrl);
if (ServiceDescription.CanRead(myReader))
{
ServiceDescription myDescription = ServiceDescription.Read(myReader);
foreach (PortType pt in myDescription.PortTypes)
{
foreach (Operation op in pt.Operations)
{
lstMethodName.Items.Add(op.Name);
}
}
}
添加命名空间:
using System.Web.Services.Description;
using System.Collections.Generic;