当前位置:编程学习 > C#/ASP.NET >>

wcf 动态调用

按照论坛上的达人们的代码 

   public static object ExecuteMethod(string pUrl, string pMethodName, params object[] pParams)
        {
            string serviceWsdlUri = pUrl;

            DynamicProxyFactory factory = new DynamicProxyFactory(serviceWsdlUri);
            
            List<object> myEndpoints = new List<object>();

            foreach (ServiceEndpoint endpoint in factory.Endpoints)
            {
                myEndpoints.Add(endpoint.Contract.Name);
            }
            foreach (string endpoint in myEndpoints)
            {
                DynamicProxy dp = factory.CreateProxy(endpoint);
                OperationDescriptionCollection operations = factory.GetEndpoint(endpoint).Contract.Operations;
                Type proxyType = dp.ProxyType;
                MethodInfo[] mi = proxyType.GetMethods(BindingFlags.Public | BindingFlags.Instance);
                for (int i = 0; i < mi.Length; i++)
                {
                    string name = mi[i].Name;
                    if (name == pMethodName)
                    {
                        DynamicProxy proxy = factory.CreateProxy(endpoint);
                        return proxy.CallMethod(pMethodName, pParams);
                    }
                }
                dp.Close();
            }
            return null;

        }


我的调用代码是: this.label1.Text = ExecuteMethod("http://localhost:1990/?wsdl", "GetData", new object[]{"1"}).ToString();
http://localhost:1990/?wsdl 这个地址是有数据的.
可是为什么它总要报  未找到方法“Service1Client.GetData”

哪些地方还用的注意?请各位达人看看了.. --------------------编程问答-------------------- 代码中return proxy.CallMethod(pMethodName, pParams);
pParams写成 你要调入的参数:例如我传int型..
前面申明:int a=1;
return proxy.CallMethod(pMethodName, a);
就可以了..
找了好半天才明白..
--------------------编程问答--------------------
引用 1 楼 wq308087207 的回复:
代码中return proxy.CallMethod(pMethodName, pParams);
pParams写成 你要调入的参数:例如我传int型..
前面申明:int a=1;
return proxy.CallMethod(pMethodName, a);
就可以了..
找了好半天才明白..

学习了?传参不一样需要int对吧? --------------------编程问答-------------------- 动态调用
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,