有没有办法使用程序动态读取Web服务方法?我有一个Windows窗体应用程序,应该能够读取方法列表并显示它们。我已经为我的项目添加了一个服务引用,但需要帮助来阅读Web方法或操作(WCF)列表。
答案:
这是一段代码,以防万一有人在寻找它。
MethodInfo[] methods = typeof(MyClass).GetMethods(BindingFlags.Public | BindingFlags.Instance);
if (methods != null && methods.Length > 0)
{
foreach (MethodInfo m in methods)
{
foreach (object o in m.GetCustomAttributes(false))
{
// To identify the method
if (o.GetType().Name.Equals("SoapDocumentMethodAttribute"))
{
// Get Name using m.Name
}
}
}
}
答案 0 :(得分:3)
或者,如果您需要即时阅读服务的方法,您可能会对本文感兴趣,因为它说明了如何从WSDL创建WCF代理。 http://blogs.msdn.com/b/vipulmodi/archive/2008/10/16/dynamic-proxy-and-memory-footprint.aspx
然后你可以使用反射(根据Mike的建议)来阅读服务公开的服务方法列表。
答案 1 :(得分:2)
在您的客户端,由于您已经拥有Web服务的Web引用类型,因此您只能在代理客户端类中use reflection to list all the methods。