当前位置: 代码迷 >> Web Service >> WebService中[WebMethod]的参数和返回值有关问题
  详细解决方案

WebService中[WebMethod]的参数和返回值有关问题

热度:332   发布时间:2016-05-02 03:00:50.0
WebService中[WebMethod]的参数和返回值问题
请问各位大侠,用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的
  相关解决方案