一、客户端添加服务引用,并调用
1.使用客户端代理同步调用
static void TestTwo() { /*********同步访问********/ Person.PersonServiceClient client = new Person.PersonServiceClient(); string result = client.DoWork(new[] { 1, 3, 5 }); Console.WriteLine(result); DateTime serverTime = client.GetServerTime(); Console.WriteLine(serverTime); Dictionary<string, int> dic = client.GetDic(); foreach (var item in dic) { Console.WriteLine(item.Key + ":" + item.Value); } //服务店List集合,对应客户端数组 string[] strList = client.GetListStr(); Console.WriteLine(string.Join(",", strList)); Person.Person[] list = client.GetList(); foreach (var item in list) { Console.WriteLine(item.ID + "-" + item.Name + "-" + item.Birthday); } //关闭连接 client.Close(); }
2.使用客户端代理异步调用
static void TestThree() { /******异步访问******/ Person.PersonServiceClient client = new Person.PersonServiceClient(); Task<string> result = client.DoWorkAsync(new[] { 1, 3, 5 }); Task<DateTime> serverTime = client.GetServerTimeAsync(); Console.WriteLine(result.Result); Console.WriteLine(serverTime.Result); //关闭连接 client.Close(); Console.WriteLine("end"); }
客户端配置:
<system.serviceModel> <bindings> <basicHttpBinding> <binding name="BasicHttpBinding_IService1" /> <binding name="BasicHttpBinding_IPersonService" /> </basicHttpBinding> </bindings> <client> <endpoint address="http://localhost:60957/Service1.svc" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IService1" contract="ServiceOne.IService1" name="BasicHttpBinding_IService1" /> <endpoint address="http://localhost:60957/PersonService.svc" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IPersonService" contract="Person.IPersonService" name="BasicHttpBinding_IPersonService" /> </client> </system.serviceModel>