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

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

热度:926   发布时间:2011-12-25 23:21:20.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的
  相关解决方案