динамически читаемые методы веб-сервиса - PullRequest
4 голосов
/ 17 марта 2011

Есть ли способ динамического чтения методов веб-службы с помощью программы? У меня есть приложение Windows Forms, которое должно иметь возможность читать список методов и отображать их. Я добавил ссылку на сервис в свой проект, но мне нужна помощь, чтобы прочитать список веб-методов или операций (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 ]

3 голосов
/ 17 марта 2011

В качестве альтернативы, если вам нужно читать методы службы на лету, эта статья может быть вам интересна, поскольку она иллюстрирует, как создать прокси WCF из WSDL.http://blogs.msdn.com/b/vipulmodi/archive/2008/10/16/dynamic-proxy-and-memory-footprint.aspx

Затем вы можете использовать отражение (согласно предложению Майка), чтобы прочитать список методов обслуживания, предоставляемых службой.

2 голосов
/ 17 марта 2011

На стороне клиента, поскольку у вас уже есть тип веб-ссылки для веб-службы, вы можете просто использовать отражение, чтобы перечислить все методы в классе прокси-клиента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...