将Model实体类对象作为WebService接口参数(转)
转自:http://www.cnblogs.com/fengyishou/archive/2009/02/27/1399281.html
关于web服务的有关基础知识,看了基本书,但是不敢在这里乱说,因为毕竟没有深究,说出来就被人笑话了。利用vs200X IDE是可以很方便的创建web服务的,并且可以添加web引用方便的调用。
以上这些就不在说了,来说这次的想法吧。
由于实体的方便性(个人认为,欢迎众神拍砖),我希望能在与web服务的通讯过程中继续使用,我在创建web服务时,同样使用了类库,创建相应实体,但是我又想到,这样的对象类型,如果你不暴露出去,调用方是不知道的,那有没有办法解决呢?在园内我看到了众神的文章,发现有一个较为简单的办法,但是不知道是不是最优的办法。
实体类中还是想通常一样,封装属性,就类似于这样:
public class book
{
public int ID
{
set;
get;
}
public string Name
{
set;
get;
}
}
在webservice中引用这个类库,引用命名空间。编写相应的方法。其实这都不是重点,重点是在代码中需要加入:
using System.Xml.Serialization; [XmlInclude(typeof(book))]
这样,调用方就可以识别你的实体类型了。哦对了,在编写实体类时,在类前加上
[Serializable]
不过,是不是必须的我并没有试,一会试试。
这里需要说的是,在调用方进行调用时,使用类似:
localhost.Service1 ls = new localhost.Service1(); localhost.book lb = new localhost.book(); lb.Name = TextBox1.Text; ls.add(lb);
应当注意,这里并不是直接调用了实体类,而是通过代理类进行调用,所以还是有区别的。
我还是有一些问题没有想好,比如,如果JAVA要掉我的服务,那么这个实体类就不能被识别了吧?可是我又不想去直接传递诸如 int i,string s,等一大串的参数,不知道园内众神有没有能帮忙的。
还有,在.NET中我的查询结果可以直接返回dataset,那么如果JAVA调用呢?list可以么?说需要通用,那么就是数组了吧,或者是XML,应当如何写呢?如果我将结果放到泛型对象中,然后做成json的形式发过去呢?但是.NET这里就不方便了啊,恩,需要想一想了。
*******************经过思考(进行文章内容补充)*********************
进行了尝试,可以将dataset转换成XML格式进行发送,这样理论上无论是什么调用方主要可以操作XML文件就可以了,如果在试的过程中,java的报我wsdl有错误,额.....还没有解决。
关于参数嘛,数组,感觉还是数组最好,属于简单类型,应该都认识,不过还需要尝试。
将Model实体类对象作为WebService接口参数(转)的更多相关文章
- java 获取实体类对象属性值的方法
在java中我们要获得实体类对象的属性,一般情况是将实体类中的属性私有化,然后再对外提供get()与set()方法,然后再获取实体类对象的属性的时候先把对象new出来,再用变量名.get()的方法得到 ...
- Mybaits 源码解析 (八)----- 全网最详细,没有之一:结果集 ResultSet 自动映射成实体类对象(上篇)
上一篇文章我们已经将SQL发送到了数据库,并返回了ResultSet,接下来就是将结果集 ResultSet 自动映射成实体类对象.这样使用者就无需再手动操作结果集,并将数据填充到实体类对象中.这可大 ...
- NSDictionary转化为实体类对象
方法一: 使用objective-c NSObject自带的方法 setValuesForKeysWithDictionary:dict 作用是: 如果NSDictionary中的key和实体类对象的 ...
- 我写了一个java实体类,implements了Serializable接口,然后我如何让serialversionUID自动生成
写了一个java实体类,implements了Serializable接口,让serialversionUID自动生成方法: 1.点击类旁边的警告符号: 2.选择Add generated seria ...
- 使用myeclipse创建带注解的model实体类
1.先新建JPA项目: 如果没有就点击左下角的Show All Wizards. 点两次Next后,点击Finish即可,中间不用任何操作 (点第二次Next后会出现连接到所在数据库,先不管) ...
- @NamedEntityGraphs --JPA按实体类对象参数中的字段排序问题得解决方法
JPA按实体类对象参数中的字段排序问题得解决方法@Entity @Table(name="complaints") @NamedEntityGraphs({ @NamedEntit ...
- Hibernate_day02--课程安排_主键生成策略_对实体类crud操作_实体类对象状态
Hibernate_day02 上节内容 今天内容 实体类编写规则 Hibernate主键生成策略 实体类操作 对实体类crud操作 添加操作 根据id查询 修改操作 删除操作 实体类对象状态(概念) ...
- 使用fastjson 进行jsonObject转实体类对象
使用fastjson 进行jsonObject转实体类对象 1 <dependency> 2 <groupId>com.alibaba</groupId> 3 ...
- solr搜索结果转实体类对象的两种方法
问题:就是把从solr搜索出来的结果转成我们想要的实体类对象,很常用的情景. 1.使用@Field注解 @Field这个注解放到实体类的属性[字段]中,例如下面 public class User{ ...
随机推荐
- 如何安装一个优秀的BUG管理平台(转)
前言 就BUG管理而言,国内的禅道做得很不错,而且持续有更新.我们来看看如何从头到尾安装禅道,各位要注意的是,不是文章深或者浅,而是文章如何在遇到问题的时候,从什么途径和用什么方法解决问题的.现在发觉 ...
- Linux的NTP配置总结(转)
在Linux系统中,为了避免主机时间因为在长时间运行下所导致的时间偏差,进行时间同步(synchronize)的工作是非常必要的.Linux系统下,一般使用ntp服务来同步不同机器的时间.NTP 是网 ...
- Git Config(转)
一.Git已经在你的系统中了,你会做一些事情来客户化你的Git环境. 你只需要做这些设置一次:即使你升级了,他们也会绑定到你的环境中.你也可以在任何时刻通过运行命令来重新更改这些设置. ...
- Xcode的小标记旁边的文件的名称的作用
这两天老板教我要注意Xcode该文件名以小标记权.例如: 这里的M就是Xcode中类名旁边的一个symbol.还有A,D等,这些标记用于显示当前文件和代码仓库中该文件对照后的状态: M = Local ...
- HDU 4123 Bob’s Race 树的直径+单调队列
题意: 给定n个点的带边权树Q个询问. 以下n-1行给出树 以下Q行每行一个数字表示询问. 首先求出dp[N] :dp[i]表示i点距离树上最远点的距离 询问u, 表示求出 dp 数组中最长的连续序列 ...
- ISA TEST Writeup
刚出来的hack游戏,非常easy,现在只有7关.考虑入门级.没有什么可以玩. http://helloisa.com/ LEVEL 1 细致观察页面,入侵的第一步是收集一切可能产生价值的信息 ps: ...
- 使用Maven在Eclipse中创建Web项目[转]
一.新建 Maven Web项目 1.新建Maven Project new project-->选择 Maven Project --> 下一步 选择工作空间 -->下一步 在Fi ...
- ToDictionary() and ToList()
ToDictionary() and ToList() 前言: 有两个简单好用的LINQ扩展方法 ToDictionary() 和ToList(),你可能知道或不知道,但是它的的确确可以简化查询转化为 ...
- 我的MYSQL学习心得(七)
原文:我的MYSQL学习心得(七) 我的MYSQL学习心得(七) 我的MYSQL学习心得(一) 我的MYSQL学习心得(二) 我的MYSQL学习心得(三) 我的MYSQL学习心得(四) 我的MYSQL ...
- 【Leetcode】Sort List (Sorting)
这个问题需要与归并排序排两个名单,基本思路分为切割与合并 合并后的代码Merge Two Sorted List里已经讲得非常清楚了. 所以这里直接给出代码. public ListNode merg ...