依赖-WebService(axmx)如何实现完美跨平台?

问题描述

WebService(axmx)如何实现完美跨平台?

A类,自定义类,用于描述原始参数,可以xml序列化
B类,自定义类,用于描述结果。无法xml序列化,可以二进制序列化。
需求场景:
用户需要输入指定格式的参数,得到指定格式的结果。实现跨平台特性。
实现过程:
用户以A类的xml序列化字符串形式提交一些数据到asmx(webService服务),
经过算法处理后返回B类的二进制序列化数组。

问题:
在整个场景中,传输过程用到了xml格式的字符串和二进制数组,这些都能够实现跨平台。但是,原始参数和返回结果的序列化、反序列化过程依赖于类A、类B。这样的实现是否影响整个方案的跨平台特性?有没有优化的思路和方案?

解决方案

你可以自己解析xml构造对象,本身xml就是很简单的,你想复杂了。

解决方案二:

什么叫原始参数呢?还有新式参数吗?

楼主显然对web service概念没有了解到位。
既然web service基于xml,那么就一定有个xml语言标准,webservice采用wsdl来描述的。

所以你只要关注你要的平台如何提供标准wsdl序列化功能即可。

除了xml,json同样可以实现跨平台跨语言,如果你的服务基于http或https那推荐json作为标准输入输出。

当然xml也完全可行。

解决方案三:

问题在于输出结果(类型B)本身就无法xml序列化。所以用户收到的会是2进制数组(byte[])。这个怎么办?
所需要输出的结构类型(B类):
[Serializable]
public class PointAnalysisResults : CommonAbstractResults, IPointAnalysisResult
{
public PointAnalysisResults();

    public List<ResultElement> IntensityAvgList { get; set; }
    public List<ResultElement> NgList { get; set; }
    public string PointName { get; set; }
    public Dictionary<LightningStrikeDirectionEnum, double> RoseDistribution { get; set; }
}

    序列化时报错类型:反射类型“LlsAnalysis.Entities.PointAnalysisResults”时出错。
时间: 2024-09-29 10:40:56

依赖-WebService(axmx)如何实现完美跨平台?的相关文章

C#调JAVA WebService,最后Invoke的时候报“调用的目标发生了异常”是怎么回事?

问题描述 代码如下:publicstaticvoidCreateWebServiceDLL(stringurl,stringmethodname,object[]args){try{//1.使用WebClient下载WSDL信息.WebClientweb=newWebClient();Streamstream=web.OpenRead(url);//2.创建和格式化WSDL文档.ServiceDescriptiondescription=ServiceDescription.Read(strea

C#远程调用技术WebService修炼手册

一.课程介绍 一位伟大的讲师曾经说过一句话:事物存在即合理!意思就是说:任何存在的事物都有其存在的原因,存在的一切事物都可以找到其存在的理由,我们应当把焦点放在因果关联的本质上.所以在本次分享课开课之前,我们要"约法三章"不谈论以下几个比较"严肃"和"敏感"的话题:WebService已经过时了啦,学习它干什么用啊!为什么要用WebService,而不用基于当前流行的RestFul ASP.NET WebAPI ?  对于上面的问题阿笨的回答很简

浏览器掣肘HTML5发展 云适配Enterplorer助其突围

由于HTML5天然的跨平台优势,在移动互联时代一跃成为应用开发领域的焦点.它改变了Web网页在不同设备上的单一呈现方式,给人机交互显示带来了飞跃式发展.中国最大的社交工具微信,便是凭借可随时分享的HTML5网页在一夜之间火便全国.此外,无论游戏.娱乐还是阅读.营销,HTML5都给予了用户全新的.更好.更便捷的使用体验. 近来,随着2013年后国内手机移动端用户的爆棚式增长,HTML5除了在用户们能看到的前端被越来越广泛的应用,还在企业被后端交互显示越来越重视.据云适配发布的<2016中国企业HT

java实现目录文件监控实例代码

Java 7之前的版本都是没有原生支持的,下面就说说JDK 1.7 以下版本平台的解决方案: 事件驱动方式,无需无目录扫描,但与平台相关 线程轮询扫描,纯java实现,完美跨平台,但监听文件较多时,扫描的量太大,响应不是非常及时,依赖于扫描间隔时间 JNotify属于事件驱动,所以不同的平台的处理方式不一样.所以需要在java.library.path里面添加jnotify.dll/jnotify_64bit.dll,最简单的解决方案直接修改代码.JNotify_win32.java的47和51

动态网站制作:ASP,PHP,JSP的比较

js|比较|动态 目前,最常用的三种动态网页语言有ASP(Active Server Pages),JSP(Java Server Pages),PHP (Hypertext Preprocessor). 简 介 ASP全名Active Server Pages,是一个WEB服务器端的开发环境, 利用它可以产生和运行动态的.交互的.高性能的WEB服务应用程序.ASP采用脚本语言VB Script(Java script)作为自己的开发语言. PHP是一种跨平台的服务器端的嵌入式脚本语言. 它大量

帝国之争 动态网页编程语言谁主沉浮?

编程|动态|网页 ASP JSP PHP是动态网页编程语言中的三大霸主,ASP的全称是Active Server Pages,是一个WEB服务器端的开发环境,利用它可以产生和运行动态的.交互的.高性能的WEB服务应用程序.ASP采用脚本语言VBScript(Java script)作为自己的开发语言.JSP是Sun公司推出的新一代站点开发语言,他完全解决了目前ASP,PHP的一个通病,脚本级执行(据说PHP4也已经在Zend的支持下,实现编译运行).Sun公司借助自己在Java上的不凡造诣,将J

JavaServerPages白皮书

erp|server JavaServer PagesTM (JSP)技术为创建显示动态生成内容的Web页面提供了一个简捷而快速的方法.JSP技术的设计目的是使得构造基于Web的应用程序更加容易和快捷,而这些应用程序能够与各种Web服务器,应用服务器,浏览器和开发工具共同工作. 本白皮书提供了JSP技术的全面概述,描述了其开发背景以及这项技术的总体目标.同时,在一个简单示例中,还描述了一个基于JavaTM技术的页面的关键组成部分. 开发基于Web的应用程序:背景 在万维网短暂的历史中,它已经从一

基于JSP网页自动生成工具的设计与实现

js|设计|网页 摘 要:Web开发技术是Internet应用的一个重要方面,而JSP又是Web开发的最先进的技术,是当前Web开发人员的首选技术.但是由于JSP对Web开发人员要求较高,所以许多一般的Web开发人员还不能够使用这一项先进的技术.讨论基于模板和标签库的JSP网页自动生成工具的设计和实现,提出具体的设计思想和实现方法. 关键词:JSP:自动生成:Web开发:标签:标签库:模板 目录: 引言-------------------------..2 1          系统设计目标和

JAVA高级:基于JSP的动态网站开发技术

js|动态|高级 动态网站开发技术 早期的动态网站开发技术使用的是CGI-BIN接口.开发人员编写与接口相关的单独的程序和基于Web的应用程序,后者通过Web服务器来调用前者.这种开发技术存在着严重的扩展性问题--每一个新的CGI程序要求在服务器上新增一个进程.如果多个用户并发地访问该程序,这些进程将耗尽该Web服务器所有的可用资源,直至其崩溃. 为克服这一弊端,微软公司提出了Active  Server  Pages(ASP)技术,该技术利用"插件"和API简化了Web应用程序的开发