请问各位大侠,用WebService对异构系统间做数据交换时,我的[WebMethod]应该用什么类型的参数以及返回值的类型是什么?能否给一个实例瞧瞧,例如客户端向WebService请求获得数据和客户端向WebService发布数据!
------解决方案--------------------
参数和返回值只要是可序列化的对象就可以。比如string。也可以根据需要自己定义类型,不过,我感觉传递数据用xml文档就很好,xml文档本身就是网络上的数据交换标准,可以自己定义schema,任何数据都可以传入,返回。给你一段代码。
- C# code
/// <summary> /// 当一个数据提供方注册新的数据时调用该方法 /// </summary> /// <param name="xml"></param> /// <returns></returns> [WebMethod] public DataSet AddDS(string xml) { //XmlDocument doc = new XmlDocument(); //doc.LoadXml(xml); // 建立数据集和读取大纲 DataSet newMetaDataofDS = new DataSet("newMetaDataofDS"); try { //验证xml文档的格式是否有效 XmlDocument document = new XmlDocument(); document.Schemas.Add("http://tempuri.org/MetaDataofDS.xsd", XmlReader.Create(Server.MapPath("MetaDataofDS.xsd"))); document.LoadXml(xml); document.Validate(new ValidationEventHandler(ValidationEventHandler)); } catch (Exception ex) { throw ex; } //newMetaDataofDS.ReadXmlSchema(Server.MapPath("MetaDataofDS.xsd")); // 由xml字符串加载到dataset中 XmlTextReader xtReader = new XmlTextReader(new StringReader(xml)); newMetaDataofDS.ReadXml(xtReader); //获取原有数据表内容 DataSet MetaDataofDS = DbHelperSQL.Search("SELECT * FROM MetaDataofDS"); //将需要插入的数据集与原有数据集合并,然后更新MetaDataofDS表 MetaDataofDS.Merge(newMetaDataofDS); return DbHelperSQL.UpdateDs(MetaDataofDS, "MetaDataofDS"); }
------解决方案--------------------
DataSet MetaDataofDS = DbHelperSQL.Search("SELECT * FROM MetaDataofDS");
楼上的说的很正确,2楼的可以只要这一句就可以了,
webservice的数据传输格式就是xml的