• WCF客户端代理


    • 创建类库WCFServiceProxy
    • 添加System.ServiceModel、WCFService(见上篇文章)引用
    • 创建类:BookServiceClient
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.ServiceModel;
    using System.ServiceModel.Channels;
    using System.Text;
    using System.Threading.Tasks;
    using WCFService;
    using WCFService.Models;
    
    namespace WCFServiceProxy
    {
        public class BookServiceClient : ClientBase<IBookService>, IBookService
        {
            public BookServiceClient() : base() { }
            public BookServiceClient(string endpointConfigurationName) : base(endpointConfigurationName) { }
            public BookServiceClient(string endpointConfigurationName, string remoteAddress) : base(endpointConfigurationName, remoteAddress) { }
            public BookServiceClient(string endpointConfigurationName, EndpointAddress remoteAddress) : base(endpointConfigurationName, remoteAddress) { }
            public BookServiceClient(Binding binding, EndpointAddress remoteAddress) : base(binding, remoteAddress) { }
            public bool Add(string name, double price)
            {
                return base.Channel.Add(name, price);
            }
    
            public List<Book> GetList()
            {
                return base.Channel.GetList();
            }
        }
    }

    创建类BookServiceProxy

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.ServiceModel;
    using System.Text;
    using System.Threading.Tasks;
    using WCFService.Models;
    
    namespace WCFServiceProxy
    {
        public static class BookServiceProxy
        {
            private static string _clientEndpointName = "bookInfo";
            static List<Book> list = new List<Book>();
            public static bool Add(string name, double price)
            {
                BookServiceClient client = null;
                try
                {
                    client = new BookServiceClient(_clientEndpointName);
                    client.Add(name, price);
                    client.Close();
                    return true;
                }
                catch (Exception ex)
                {
                    if (client != null && client.State != CommunicationState.Closed)
                    {
                        client.Abort();
                        client = null;
                    }
                    return false;
                }
                finally
                {
                    client = null;
                }
            }
    
            public static List<Book> GetList()
            {
                BookServiceClient client = null;
                try
                {
                    client = new BookServiceClient(_clientEndpointName);
                    list = client.GetList();
                    client.Close();
                    return list;
                }
                catch (Exception ex)
                {
                    if (client != null && client.State != CommunicationState.Closed)
                    {
                        client.Abort();
                        client = null;
                    }
                    return null;
                }
                finally
                {
                    client = null;
                }
            }
        }
    }
  • 相关阅读:
    软工实践1816-第四次作业
    软工实践1816-第三次作业
    软工实践1816-第二次作业
    Alpha 冲刺 (3/10)
    Alpha 冲刺 (2/10)
    Alpha 冲刺 (1/10)
    福大软工 · 第七次作业
    福大软工 · 第八次作业(课堂实战)- 项目UML设计(团队)
    福大软工1816 · 第六次作业
    福大软工1816 · 第五次作业
  • 原文地址:https://www.cnblogs.com/wzq806341010/p/3603651.html
Copyright © 2020-2023  润新知