谁说.net core不好动态访问webservice?看这篇文章,C#快速实现动态访问webservice,兼容.net framework和.net core+

















/// <summary>
/// 调用Web服务
/// Calls a web service.
/// </summary>
/// <param name="url">服务URL / Service URL</param>
/// <param name="apiName">API名称 / API name</param>
/// <param name="expireSecond">过期时间(秒)/ Expiration time in seconds</param>
/// <param name="parameters">调用参数 / Invocation parameters</param>
/// <returns>调用结果 / Invocation result</returns>
public OpenToolResult<string> CallWebservice(string url, string apiName,long expireSecond = 86400,params object[] parameters)
{
OpenToolResult<string> result = new HttpExtensions.OpenToolResult<string>(); CheckExpireTime(url, apiName, expireSecond); var wsInfo = OpenWebserviceInfo.OpenWebservice.FirstOrDefault(x => x.WebserviceUrl == url && x.OperationName == apiName); if (wsInfo == null)
{
result.IsSuccess = false;
result.Message = "本地无法加载远程webservice服务。Cannot load the remote webservice locally.";
return result;
} if ((parameters == null && wsInfo.ParameterNames.Count > 0) || (parameters!=null && parameters.Length != wsInfo.ParameterNames.Count))
{
result.IsSuccess = false;
result.Message = $"远程服务接口参数个数和你传入的参数个数不匹配。远程服务参数个数:{wsInfo.ParameterNames.Count}, 本地传入参数个数: {parameters?.Length ?? 0}。Parameter count mismatch: remote service has {wsInfo.ParameterNames.Count}, provided {parameters?.Length ?? 0}.";
return result;
} Dictionary<string, string> dicParams = new Dictionary<string, string>();
if (parameters != null)
{
for (int i = 0; i < wsInfo.ParameterNames.Count; i++)
{
dicParams.Add(wsInfo.ParameterNames[i], XmlConvertor.SerializeObjectToXml(parameters[i]));
}
}
var response = InvokeService(url, apiName, dicParams,wsInfo.Namespace); result.Result = response;
result.IsSuccess = true;
result.Message = "success"; return result;
}
谁说.net core不好动态访问webservice?看这篇文章,C#快速实现动态访问webservice,兼容.net framework和.net core+的更多相关文章
- Android动态方式破解apk前奏篇(Eclipse动态调试smail源码)
一.前言 今天我们开始apk破解的另外一种方式:动态代码调试破解,之前其实已经在一篇文章中说到如何破解apk了: Android中使用静态方式破解Apk 主要采用的是静态方式,步骤也很简单,首先使用 ...
- .NET Core中的一个接口多种实现的依赖注入与动态选择看这篇就够了
最近有个需求就是一个抽象仓储层接口方法需要SqlServer以及Oracle两种实现方式,为了灵活我在依赖注入的时候把这两种实现都给注入进了依赖注入容器中,但是在服务调用的时候总是获取到最后注入的那个 ...
- 【NET CORE微服务一条龙应用】第三章 认证授权与动态权限配置
介绍 系列目录:[NET CORE微服务一条龙应用]开始篇与目录 在微服务的应用中,统一的认证授权是必不可少的组件,本文将介绍微服务中网关和子服务如何使用统一的权限认证 主要介绍内容为: 1.子服务如 ...
- ExpandoObject与DynamicObject的使用 RabbitMQ与.net core(一)安装 RabbitMQ与.net core(二)Producer与Exchange ASP.NET Core 2.1 : 十五.图解路由(2.1 or earler) .NET Core中的一个接口多种实现的依赖注入与动态选择看这篇就够了
ExpandoObject与DynamicObject的使用 using ImpromptuInterface; using System; using System.Dynamic; names ...
- ASP.NET中WebService的创建和部署以及通过反射动态调用WebService
一.在ASP.NET中创建WebService 首先我们先创建一个ASP.NET Web 应用程序,此处我们以VS2017为例 点击新创建的项目,右键添加新建项,选择Web服务,输入名称后点击添加 这 ...
- WebService只能在本地使用,无法通过网络访问的解决办法
问题描述:WebService只能在本地使用,无法通过网络访问. 解决方案:在web.config的<system.web></system.web>中间加入如下配置节内容: ...
- 使用Entity Framework Core访问数据库(Oracle篇)
前言 哇..看看时间 真的很久很久没写博客了 将近一年了. 最近一直在忙各种家中事务和公司的新框架 终于抽出时间来更新一波了. 本篇主要讲一下关于Entity Framework Core访问ora ...
- 基于SqlSugar的数据库访问处理的封装,支持.net FrameWork和.net core的项目调用
由于我们有时候需要在基于.net framework的项目上使用(如Winform端应用),有时候有需要在.net core的项目上使用(如.net core的WebAPI),那么我们把基于SQLSu ...
- NET?.NET Framework?.NET Core?
什么是.NET?什么是.NET Framework?什么是.NET Core? https://www.cnblogs.com/1996V/p/9037603.html 什么是.NET?什么是.NET ...
- Vue + Element UI 实现权限管理系统 前端篇(十):动态加载菜单
动态加载菜单 之前我们的导航树都是写死在页面里的,而实际应用中是需要从后台服务器获取菜单数据之后动态生成的. 我们在这里就用上一篇准备好的数据格式Mock出模拟数据,然后动态生成我们的导航菜单. 接口 ...
随机推荐
- 力扣409(java&python)-最长回文串(简单)
题目: 给定一个包含大写字母和小写字母的字符串 s ,返回 通过这些字母构造成的 最长的回文串 . 在构造过程中,请注意 区分大小写 .比如 "Aa" 不能当做一个回文字符串. 示 ...
- Hologres揭秘:优化COPY,批量导入性能提升5倍+
简介: 揭秘Hologres优化COPY的技术原理,实现批量导入性能提升5倍+ Hologres(中文名交互式分析)是阿里云自研的一站式实时数仓,这个云原生系统融合了实时服务和分析大数据的场景,全面兼 ...
- [FE] G2Plot 在 Vue 中使用 CDN 方式避免构建时增大 js 体积
使用 npm.yarn 方式安装的包,虽方便使用,但是会极大增加 vendor.xx.js 体积,拖慢网站运行速度. 以 G2Plot 为例,实际在 build 构建时,会下载一些额外字体到 vend ...
- dotnet C# 如何正确获取藏文的字数
在咱国内有很多有趣的文字,其中藏文属于有趣的文字里面特别有趣的一项,特别是对于做文本库的同学,大概都知道什么叫合写字吧.合写字的含义就是多个字符一起组成一个字.但是多个字符在内存中,本身就是多个字符对 ...
- SQL server 查看脚本
原文出处:http://blog.csdn.net/xiaochunyong/article/details/7455051 --Siuon --查看存储过程源码 create procedure m ...
- 基于权电阻网络的VGA色条显示#DE10-lite#verilog#qp
- Java开启异步的两种方式
二.Java开启异步的两种方式 1.注解开启:@Async 1.1.配置异步的线程池 必须配置异步线程池,否则异步不会生效. @EnableAsync 注解:指定异步线程池.不指定默认使用:Simpl ...
- SAP集成技术(七)集成解决方案咨询方法论(ISA-M)
目前,ISA-M 主要以 Microsoft PowerPoint 演示文稿的形式提供.可以在 SAP Community 博客文章(https://blogs.sap.com/)以及关于ISA-M ...
- Blazor流程编排的艺术:深入Z.Blazor.Diagrams库的使用与实践
为现代网页应用开发提供动力的其中一个重要方面就是前端框架的强大功能与灵活性.而在.NET生态中,Blazor以其独特的工作方式和优势逐渐获得了开发者们的青睐.今天,在这篇文章中,我将带你深入探索一个基 ...
- nvm环境安装
目录 nvm是什么 使用背景 nvm的坑. nvm,node,npm之间的区别. nvm.nodejs.npm的关系: nvm-windows下载地址 安装 linux . mac 源码包下载地址 解 ...