码迷,mamicode.com
首页 > 其他好文 > 详细

代理模式

时间:2019-09-13 19:14:51      阅读:97      评论:0      收藏:0      [点我收藏+]

标签:实例初始化   文件   art   初始   partial   null   abs   base   返回   

WCF 中用到代理了? 客户端是这个样子:父类也贴出来了

  public partial class Service1Client : System.ServiceModel.ClientBase<WCF代理客户端.ServiceReference1.IService1>, WCF代理客户端.ServiceReference1.IService1 {
        
        public Service1Client() {
        }
        
        public Service1Client(string endpointConfigurationName) : 
                base(endpointConfigurationName) {
        }
        
        public Service1Client(string endpointConfigurationName, string remoteAddress) : 
                base(endpointConfigurationName, remoteAddress) {
        }
        
        public Service1Client(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) : 
                base(endpointConfigurationName, remoteAddress) {
        }
        
        public Service1Client(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : 
                base(binding, remoteAddress) {
        }
        
        public void DoWork() {
            base.Channel.DoWork();
        }
        
        public System.Threading.Tasks.Task DoWorkAsync() {
            return base.Channel.DoWorkAsync();
        }
    }

 //
    // 摘要:
    //     提供基实现,用于创建可调用服务的 Windows Communication Foundation (WCF) 客户端对象。
    //
    // 类型参数:
    //   TChannel:
    //     用于连接服务的通道。
    public abstract class ClientBase<TChannel> : ICommunicationObject, IDisposable where TChannel : class
    {
        //
        // 摘要:
        //     使用应用程序配置文件中的默认目标终结点初始化 System.ServiceModel.ClientBase`1 类的新实例。
        //
        // 异常:
        //   T:System.InvalidOperationException:
        //     配置文件中没有默认的终结点信息,或者文件中有多个终结点,或者没有配置文件。
        protected ClientBase();
        //
        // 摘要:
        //     使用应用程序配置文件中由 System.ServiceModel.ClientBase`1 指定的配置信息来初始化 endpointConfigurationName
        //     类的新实例。
        //
        // 参数:
        //   endpointConfigurationName:
        //     应用程序配置文件中的终结点的名称。
        //
        // 异常:
        //   T:System.ArgumentNullException:
        //     指定的终结点信息为 null。
        //
        //   T:System.InvalidOperationException:
        //     无法找到终结点或者终结点协定无效。
        protected ClientBase(string endpointConfigurationName);
        //
        // 摘要:
        //     新实例初始化 System.ServiceModel.ClientBase`1 类使用指定 System.ServiceModel.Description.ServiceEndpoint。
        //
        // 参数:
        //   endpoint:
        //     允许客户端查找并与服务通信的服务的终结点。
        protected ClientBase(ServiceEndpoint endpoint);
        //
        // 摘要:
        //     通过使用 System.ServiceModel.ClientBase`1 作为双工对话中的回调对象来初始化 callbackInstance 类的新实例。
        //
        // 参数:
        //   callbackInstance:
        //     客户端应用程序用以侦听来自所连接服务的消息的回调对象。
        //
        // 异常:
        //   T:System.ArgumentNullException:
        //     回调实例为 null。
        //
        //   T:System.InvalidOperationException:
        //     配置文件中没有默认的终结点信息,或者文件中有多个终结点,或者没有配置文件。
        protected ClientBase(InstanceContext callbackInstance);
        //
        // 摘要:
        //     初始化 System.ServiceModel.ClientBase`1 类的新实例。
        //
        // 参数:
        //   endpointConfigurationName:
        //     应用程序配置文件中的终结点的名称。
        //
        //   remoteAddress:
        //     服务的地址。
        //
        // 异常:
        //   T:System.ArgumentNullException:
        //     终结点为 null。
        //
        //   T:System.ArgumentNullException:
        //     远程地址为 null。
        //
        //   T:System.InvalidOperationException:
        //     无法找到终结点或者终结点协定无效。
        protected ClientBase(string endpointConfigurationName, string remoteAddress);
        //
        // 摘要:
        //     使用指定的目标地址和终结点信息初始化 System.ServiceModel.ClientBase`1 类的新实例。
        //
        // 参数:
        //   endpointConfigurationName:
        //     应用程序配置文件中的终结点的名称。
        //
        //   remoteAddress:
        //     服务的地址。
        //
        // 异常:
        //   T:System.ArgumentNullException:
        //     终结点为 null。
        //
        //   T:System.ArgumentNullException:
        //     远程地址为 null。
        //
        //   T:System.InvalidOperationException:
        //     无法找到终结点或者终结点协定无效。
        protected ClientBase(string endpointConfigurationName, EndpointAddress remoteAddress);
        //
        // 摘要:
        //     使用指定的绑定和目标地址初始化 System.ServiceModel.ClientBase`1 类的新实例。
        //
        // 参数:
        //   binding:
        //     用于调用服务的绑定。
        //
        //   remoteAddress:
        //     服务终结点的地址。
        //
        // 异常:
        //   T:System.ArgumentNullException:
        //     绑定为 null。
        //
        //   T:System.ArgumentNullException:
        //     远程地址为 null。
        protected ClientBase(Binding binding, EndpointAddress remoteAddress);
        //
        // 摘要:
        //     使用指定的回调服务和终结点配置信息初始化 System.ServiceModel.ClientBase`1 类的新实例。
        //
        // 参数:
        //   callbackInstance:
        //     客户端用以侦听来自所连接服务的消息的回调对象。
        //
        //   endpointConfigurationName:
        //     应用程序配置文件中的终结点的名称。
        //
        // 异常:
        //   T:System.ArgumentNullException:
        //     回调实例为 null。
        //
        //   T:System.ArgumentNullException:
        //     终结点为 null。
        //
        //   T:System.InvalidOperationException:
        //     无法找到终结点或者终结点协定无效。
        protected ClientBase(InstanceContext callbackInstance, string endpointConfigurationName);
        //
        // 摘要:
        //     使用指定的 System.ServiceModel.ClientBase`1 和 System.ServiceModel.InstanceContext
        //     对象初始化 System.ServiceModel.Description.ServiceEndpoint 类的新实例。
        //
        // 参数:
        //   callbackInstance:
        //     客户端应用程序用以侦听来自所连接服务的消息的回调对象。
        //
        //   endpoint:
        //     允许客户端查找并与服务通信的服务的终结点。
        protected ClientBase(InstanceContext callbackInstance, ServiceEndpoint endpoint);
        //
        // 摘要:
        //     初始化 System.ServiceModel.ClientBase`1 类的新实例。
        //
        // 参数:
        //   callbackInstance:
        //     回调服务。
        //
        //   binding:
        //     用于调用服务的绑定。
        //
        //   remoteAddress:
        //     服务终结点的地址。
        //
        // 异常:
        //   T:System.ArgumentNullException:
        //     回调实例为 null。
        //
        //   T:System.ArgumentNullException:
        //     绑定为 null。
        //
        //   T:System.ArgumentNullException:
        //     远程地址为 null。
        protected ClientBase(InstanceContext callbackInstance, Binding binding, EndpointAddress remoteAddress);
        //
        // 摘要:
        //     初始化 System.ServiceModel.ClientBase`1 类的新实例。
        //
        // 参数:
        //   callbackInstance:
        //     客户端用以侦听来自所连接服务的消息的回调对象。
        //
        //   endpointConfigurationName:
        //     应用程序配置文件中的终结点的名称。
        //
        //   remoteAddress:
        //     服务的地址。
        //
        // 异常:
        //   T:System.ArgumentNullException:
        //     回调实例为 null。
        //
        //   T:System.ArgumentNullException:
        //     终结点为 null。
        //
        //   T:System.ArgumentNullException:
        //     远程地址为 null。
        //
        //   T:System.InvalidOperationException:
        //     无法找到终结点或者终结点协定无效。
        protected ClientBase(InstanceContext callbackInstance, string endpointConfigurationName, EndpointAddress remoteAddress);
        //
        // 摘要:
        //     初始化 System.ServiceModel.ClientBase`1 类的新实例。
        //
        // 参数:
        //   callbackInstance:
        //     客户端用以侦听来自所连接服务的消息的回调对象。
        //
        //   endpointConfigurationName:
        //     应用程序配置文件中的终结点的名称。
        //
        //   remoteAddress:
        //     服务的地址。
        //
        // 异常:
        //   T:System.ArgumentNullException:
        //     回调实例为 null。
        //
        //   T:System.ArgumentNullException:
        //     终结点为 null。
        //
        //   T:System.ArgumentNullException:
        //     远程地址为 null。
        //
        //   T:System.InvalidOperationException:
        //     无法找到终结点或者终结点协定无效。
        protected ClientBase(InstanceContext callbackInstance, string endpointConfigurationName, string remoteAddress);

        //
        // 摘要:
        //     获取或设置缓存设置。
        //
        // 返回结果:
        //     该缓存设置。
        public static CacheSetting CacheSetting { get; set; }
        //
        // 摘要:
        //     获取 WCF 客户端可连接的服务的目标终结点。
        //
        // 返回结果:
        //     目标终结点。
        public ServiceEndpoint Endpoint { get; }
        //
        // 摘要:
        //     获取基础 System.ServiceModel.IClientChannel 实现。
        //
        // 返回结果:
        //     WCF 客户端对象的客户端通道。
        public IClientChannel InnerChannel { get; }
        //
        // 摘要:
        //     获取 System.ServiceModel.ClientBase`1 对象的当前状态。
        //
        // 返回结果:
        //     对象的 System.ServiceModel.CommunicationState 的值。
        public CommunicationState State { get; }
        //
        // 摘要:
        //     获取用于调用操作的客户端凭据。
        //
        // 返回结果:
        //     返回一个 System.ServiceModel.Description.ClientCredentials,它表示客户端所提供的身份证明。
        public ClientCredentials ClientCredentials { get; }
        //
        // 摘要:
        //     获取基础 System.ServiceModel.ChannelFactory`1 对象。
        //
        // 返回结果:
        //     一个 System.ServiceModel.ChannelFactory`1 对象。
        public ChannelFactory<TChannel> ChannelFactory { get; }
        //
        // 摘要:
        //     获取用于将消息发送到不同配置的服务终结点的内部通道。
        //
        // 返回结果:
        //     指定类型的通道。
        protected TChannel Channel { get; }

这个叫泛型代理吧。

2.https://github.com/aspnet/EntityFrameworkCore/blob/release/3.1/src/EFCore/DbContext.cs  这个DBContext  也是组合了一下,也是代理的一种应用。

代理模式

标签:实例初始化   文件   art   初始   partial   null   abs   base   返回   

原文地址:https://www.cnblogs.com/qgbo/p/11517383.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!