SoapHttpClientProtocol.Invoke 方法具体是怎么用的?参数是什么意思?

qq_30519181 2016-07-21 05:00:12
我看MSDN上面的解释是使用 SOAP 同步调用 XML Web services 方法。就是可以使用webservice服务上传数据。然后一段程序是这样子的object[] results = this.Invoke("processdata", new object[] {
userid,
password,
cmdid,
inputpara,
outputpara,
rtn,
errormsg});。元数据的参数解释是methodName
类型:System.String
XML Web services 方法的名称。
parameters
类型:System.Object[]
包含要传递给 XML Web services 的参数的对象数组。 数组中值的顺序与派生类的调用方法中的参数顺序对应。 我就是不懂,发送地址什么的都没写,怎么就发送了呢?我对于上传这一段的只是不太了解,希望大神可以通俗易懂的教我一下,谢谢。
...全文
587 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Forty2 2016-07-22
  • 打赏
  • 举报
回复
很少需要用底层的SoapHttpClientProtocol。一般用自动生成的代理,或则用wcf的client factory来做。 如果你一定要自己试试,那么,你需要运行一个Soap服务。然后用SoapClient去访问:
using System;
using System.ServiceModel;
using System.Web.Services.Protocols;

class Program
{
    static Uri uri = new Uri("http://localhost:8123/my/service");
    static void Main(string[] args)
    {
        // 启动WCF服务
        var serviceHost = new ServiceHost(typeof(MyService));
        serviceHost.AddServiceEndpoint(typeof(IService), new BasicHttpBinding(BasicHttpSecurityMode.None), uri);
        serviceHost.Open();


        // 使用客户
        var client = new MySoapClient(uri.ToString());
        int sum = client.Add(3, 5);
        Console.WriteLine("sum={0}", sum);

        Console.ReadLine();
    }

    [ServiceContract(Namespace = "http://tempuri.org/")]
    public interface IService
    {
        [OperationContract]
        int Add(int a, int b);
    }

    public class MyService : IService
    {
        public int Add(int a, int b)
        {
            return a + b;
        }
    }

    [System.Web.Services.WebServiceBinding(Namespace = "http://tempuri.org/")]
    class MySoapClient : SoapHttpClientProtocol
    {
        public MySoapClient(string uri)
        {
            this.Url = uri;
        }

        [SoapDocumentMethod("http://tempuri.org/IService/Add")]
        public int Add(int a, int b)
        {
            object[] results = this.Invoke("Add", new object[] {a,b});
            return ((int)(results[0]));
        }
    }
}

110,499

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧