当前位置: 代码迷 >> Web Service >> WebService新手求教,
  详细解决方案

WebService新手求教,

热度:272   发布时间:2016-05-02 02:34:49.0
WebService新手求教,急!!在线等
    /// <summary>
    /// 采购单主单
    /// </summary>
    public class OT_TK_CGD
    {
        public string 字段1 = "!#%&";
        。。。。。。。。。。。。。。。。。。。
    }
    /// <summary>
    /// 采购单从单
    /// </summary>
    public class OT_TK_CGD_D
    {
     public string 字段1 = "!#%&";
        。。。。。。。。。。。。。。。。。。。

    }
我需要写一个WebService功能如下:

提供给客户一个方法。两个参数,一个是主表的实体类,一个是从表的实体类集合,别人调用此WebService
可以看到我的接口里的实体类,然后赋值为OBJ类型的值,
[WebMethod]
    public string updaCGD(主表实体类OBJ,从表实体类集合OBJ)
    {
    }
因为实体类中数据类型问题。要求参数得是OBJECT类型的,小弟初步了解WebService,望大神们把帮助下!不胜感激!
webservice object

------解决方案--------------------
  [Serializable()]
  public class OT_TK_CGD
     {
         public string 字段1 = "!#%&";
         。。。。。。。。。。。。。。。。。。。
     }

   [Serializable()]
  public class OT_TK_CGD_D
     {
      public string 字段1 = "!#%&";
         。。。。。。。。。。。。。。。。。。。
 
    }
[WebMethod]
     public string updaCGD(OT_TK_CGD cgd, List<OT_TK_CGD_D> cgds)
     {
     }

调用者那边也需要定义这两个实体类,并且类上都需要标记可序列化即  [Serializable()]

------解决方案--------------------
引用类型需要标记可序列化即[Serializable()]
值类型或基元类型可以直接传输,不用序列化。
------解决方案--------------------
[Serializable]
public class OT_TK_CGD
{
...
}
[Serializable]
public class OT_TK_CGD_D
{
...
}

不过这样不科学,不建议
------解决方案--------------------
webservice 方法的参数类型最好设置为基础数据类型. 如果你硬是要传递引用类型,
webservice端的引用参数类型,客户端也得有 . 就是引用同一实体层.
我没有这样做过,理论上是这样的.我一般都是使用基础类型 
------解决方案--------------------
web service在调用方要知道你的实体类,如果你不在你的wsdl当中描述这个对象的话,调用方是不能转换成你想要的object对象的。
你也不应该这样转换,最好按照1楼的说法去做。
------解决方案--------------------
using System.Runtime.Serialization;
using System.ServiceModel;
我一般先会写一个接口
  [ServiceContract]
    public interface IXXX//命名自己处理
    {
      [OperationContract]
      public string updaCGD(主表实体类OBJ,从表实体类集合OBJ)
      {
  相关解决方案