WebService如何使用实体对象作为参数传输?在与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);
应当注意,这里并不是直接调用了实体类,而是通过代理类进行调用,所以还是有区别的。
|