分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

.net core 下调用.nett framework框架的WCF方法写法

发布时间:2023-09-06 01:54责任编辑:林大明关键词:暂无标签

通过添加服务引用后生成的代码,可以得知首先要设置Basic连接写法的属性,并且设置WCF服务的地址:

我在这里建立工厂类如下:

using System;using System.ServiceModel;using System.ServiceModel.Channels;using ShoppingMall.Enums;namespace ShoppingMall.ClientBll{ ???public class EndpointFactory ???{ ???????private static Binding GetBindingForEndpoint(EndpointConfigurationEnums endpointConfiguration) ???????{ ???????????if ((endpointConfiguration == EndpointConfigurationEnums.BasicHttpBinding_ICustomerService)) ???????????{ ???????????????BasicHttpBinding result = new BasicHttpBinding(); ???????????????result.MaxBufferSize = int.MaxValue; ???????????????result.ReaderQuotas = System.Xml.XmlDictionaryReaderQuotas.Max; ???????????????result.MaxReceivedMessageSize = int.MaxValue; ???????????????result.AllowCookies = true; ???????????????return result; ???????????} ???????????throw new InvalidOperationException(string.Format("找不到名称为“{0}”的终结点。", endpointConfiguration)); ???????} ???????private static EndpointAddress GetEndpointAddress(EndpointConfigurationEnums endpointConfiguration) ???????{ ???????????if ((endpointConfiguration == EndpointConfigurationEnums.BasicHttpBinding_ICustomerService)) ???????????{ ???????????????return new EndpointAddress("http://你的地址"); ???????????} ???????????throw new InvalidOperationException(string.Format("找不到名称为“{0}”的终结点。", endpointConfiguration)); ???????} ???????public static Binding GetDefaultBinding() ???????{ ???????????return GetBindingForEndpoint(EndpointConfigurationEnums.BasicHttpBinding_ICustomerService); ???????} ???????public static EndpointAddress GetDefaultEndpointAddress() ???????{ ???????????return GetEndpointAddress(EndpointConfigurationEnums.BasicHttpBinding_ICustomerService); ???????} ???}}

然后,在客户端调用时需要调用类继承ClientBase类并且继承WCF的接口,该类的类型是服WCF接口的类型

并且要再客户端调用类的构造参数中继承ClientBase的构造方法,实例化Basic以及WCF服务的地址

最后通过继承ClientBase的Channel方式调用服务方法,完全代码如下:

using Microsoft.Extensions.Configuration;using ShoppingMall.IService;using ShoppingMall.Model;using System.Collections.Generic;using System.ServiceModel;namespace ShoppingMall.ClientBll{ ???public class CustomerBll:ClientBase<ICustomerService>, ICustomerService ???{ ???????public IConfigurationRoot configuration; ????????public CustomerBll() : base(EndpointFactory.GetDefaultBinding(), EndpointFactory.GetDefaultEndpointAddress()) ???????{ ???????} ???????public List<Buyer> GetBuyerList() ???????{ ???????????return Channel.GetBuyerList(); ???????} ???????public bool InsertBuyerInfo(Buyer info) ???????{ ???????????return Channel.InsertBuyerInfo(info); ???????} ???}}

其次,WCF的服务接口应该有对应标记,例如:

using ShoppingMall.Model;using System.Collections.Generic;using System.ServiceModel;namespace ShoppingMall.IService{ ???/// <summary> ???/// 用户信息处理服务 ???/// </summary> ???[ServiceContract] ???public interface ICustomerService ???{ ???????/// <summary> ???????/// 获取买家列表 ???????/// </summary> ???????/// <returns></returns> ???????[OperationContract] ???????List<Buyer> GetBuyerList(); ???????/// <summary> ???????/// 添加买家信息 ???????/// </summary> ???????/// <returns></returns> ???????[OperationContract] ???????bool InsertBuyerInfo(Buyer info); ???}}

这样,接口标记:

ServiceContract。
方法标记:
OperationContract
 

.net core 下调用.nett framework框架的WCF方法写法

原文地址:https://www.cnblogs.com/llcdbk/p/9048654.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved