Esempio n. 1
0
        private void button1_Click(object sender, EventArgs e)
        {
            var serviceWsdlUri = "http://localhost.fc.local/FundConnect.Authentication.IisHost/Groups.svc?wsdl";

            var factory = new DynamicProxyFactory(serviceWsdlUri);

            var count = 0;

            var myEndpoints = new List <string>( );

            foreach (var endpoint in factory.Endpoints)
            {
                Console.WriteLine("Service Endpoint[{0}]", count);
                Console.WriteLine("\tAddress = " + endpoint.Address);
                Console.WriteLine("\tContract = " + endpoint.Contract.Name);
                Console.WriteLine("\tBinding = " + endpoint.Binding.Name);


                myEndpoints.Add(endpoint.Contract.Name);
            }
            foreach (var endpoint in myEndpoints)
            {
                var dp = factory.CreateProxy(endpoint);

                var operations = factory.GetEndpoint(endpoint).Contract.Operations;

                var proxyType = dp.ProxyType;
                var mi        = proxyType.GetMethods(BindingFlags.Public | BindingFlags.Instance);

                for (var i = 0; i < mi.Length; i++)
                {
                    var name = mi[i].Name;
                    if (operations.FirstOrDefault(x => x.Name == name) != null)
                    {
                        var returnType = mi[i].ReturnType.ToString( );
                        Console.Write("Func: " + returnType + " " + name + "(");
                        var pi = mi[i].GetParameters( );
                        for (var j = 0; j < pi.Length; j++)
                        {
                            var param = pi[j].ParameterType.FullName + " " + pi[j].Name;
                            Console.Write((j > 0 ? "," : "") + param);
                        }
                        Console.WriteLine(")");
                    }
                }
                dp.Close( );
            }
            Console.ReadKey( );
        }