zoukankan      html  css  js  c++  java
  • 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;
                }
            }
        }
    }
  • 相关阅读:
    git打补丁、还原补丁
    mysql 查两个表相同的值
    系统更新后vs2012无法打开方案资源管理器
    Node.js之Buffer
    html元素固定
    在windows上用netsh动态配置端口转发
    Git忽略规则及.gitignore规则不生效的解决办法
    MySQL5.7.10 初始化失败error
    Nginx和PHP-FPM的启动、重启、停止脚本分享
    centos添加nginx为系统服务
  • 原文地址:https://www.cnblogs.com/wzq806341010/p/3603651.html
Copyright © 2011-2022 走看看