转自: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接口参数(转)的更多相关文章

  1. java 获取实体类对象属性值的方法

    在java中我们要获得实体类对象的属性,一般情况是将实体类中的属性私有化,然后再对外提供get()与set()方法,然后再获取实体类对象的属性的时候先把对象new出来,再用变量名.get()的方法得到 ...

  2. Mybaits 源码解析 (八)----- 全网最详细,没有之一:结果集 ResultSet 自动映射成实体类对象(上篇)

    上一篇文章我们已经将SQL发送到了数据库,并返回了ResultSet,接下来就是将结果集 ResultSet 自动映射成实体类对象.这样使用者就无需再手动操作结果集,并将数据填充到实体类对象中.这可大 ...

  3. NSDictionary转化为实体类对象

    方法一: 使用objective-c NSObject自带的方法 setValuesForKeysWithDictionary:dict 作用是: 如果NSDictionary中的key和实体类对象的 ...

  4. 我写了一个java实体类,implements了Serializable接口,然后我如何让serialversionUID自动生成

    写了一个java实体类,implements了Serializable接口,让serialversionUID自动生成方法: 1.点击类旁边的警告符号: 2.选择Add generated seria ...

  5. 使用myeclipse创建带注解的model实体类

    1.先新建JPA项目: 如果没有就点击左下角的Show All Wizards. 点两次Next后,点击Finish即可,中间不用任何操作 (点第二次Next后会出现连接到所在数据库,先不管)     ...

  6. @NamedEntityGraphs --JPA按实体类对象参数中的字段排序问题得解决方法

    JPA按实体类对象参数中的字段排序问题得解决方法@Entity @Table(name="complaints") @NamedEntityGraphs({ @NamedEntit ...

  7. Hibernate_day02--课程安排_主键生成策略_对实体类crud操作_实体类对象状态

    Hibernate_day02 上节内容 今天内容 实体类编写规则 Hibernate主键生成策略 实体类操作 对实体类crud操作 添加操作 根据id查询 修改操作 删除操作 实体类对象状态(概念) ...

  8. 使用fastjson 进行jsonObject转实体类对象

    使用fastjson 进行jsonObject转实体类对象   1 <dependency> 2 <groupId>com.alibaba</groupId> 3 ...

  9. solr搜索结果转实体类对象的两种方法

    问题:就是把从solr搜索出来的结果转成我们想要的实体类对象,很常用的情景. 1.使用@Field注解 @Field这个注解放到实体类的属性[字段]中,例如下面 public class User{ ...

随机推荐

  1. cuda vector addition

    http://webgpu.hwu.crhc.illinois.edu/ // MP 1 #include <wb.h> __global__ void vecAdd(float * in ...

  2. (大数据工程师学习路径)第三步 Git Community Book----高级技能

    一.创建新的空分支 1.创建新的空分支 在偶尔的情况下,你可能会想要保留那些与你的代码没有共同祖先的分支.例如在这些分支上保留生成的文档或者其他一些东西.如果你需要创建一个不使用当前代码库作为父提交的 ...

  3. 開始开发 Dashboard Widgets,第2章,读书笔记

    文件夹:http://blog.csdn.net/wide288/article/details/40298693 主要内容: widgets 的组成是什么. 怎么创建 info.plist 文件 怎 ...

  4. 关于在 xmlSPY 出现的错误 DOCTYPE-EXternalID的名称必须既是SYSTEM 又是PUBLIC?(转)

    最近我在做学习xml时,遇见一个问题,我本用的是2009 xml spy后来老是出现问题 ,就是不能通过,后来我上网查了一下,发现是以一问题,不管是在2006中还是在2009中,都会出现这样的问题,要 ...

  5. 手机新闻网站,手持移动新闻,手机报client,jQuery Mobile手机新闻网站,手机新闻网站demo,新闻阅读器开发

    我们坐在地铁.经常拿出新浪手机查看新闻.腾讯新闻,或者看新闻,等刷微信功能.你有没有想过如何实现这些目标. 移动互联网.更活泼. 由于HTML5未来,jQuery Moblie未来. 今天我用jqm的 ...

  6. 前端学习笔记(zepto或jquery)——对li标签的相关操作(五)

    对li标签的相关操作——has与find的差异性 demo代码: <ul> <li><p>1</p></li> <li>2< ...

  7. C#实现对mongoDB的简单增删查改

    首先添加所需要驱动包(可通过nuget获得) using MongoDB.Bson;using MongoDB.Driver;using MongoDB.Driver.Builders; 一.设置配置 ...

  8. JavaScript语言基础知识点图示

    原文:JavaScript语言基础知识点图示 一位牛人归纳的JavaScript 语言基础知识点图示. 1.JavaScript 数据类型 2.JavaScript 变量 3.Javascript 运 ...

  9. FTP下载帮助类

    using System; using System.Collections.Generic; using System.Text; using System.IO; using System.Net ...

  10. Hadoop-2.4.1学习之Writable及事实上现

    Hadoop基于DataInput和DataOutput实现了简单.高效的序列化协议,而Writable接口定义了Hadoop序列化的方法,MapReduce框架中的不论什么键值类型都实现了该接口,比 ...