动态读取Web服务方法

时间:2011-03-17 16:13:53

标签: wcf web-services wsdl

有没有办法使用程序动态读取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
                            }
                        }
                    }
                }

2 个答案:

答案 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