测试表单仅适用于具有基本类型作为参数的方法

时间:2012-12-14 10:29:07

标签: c# asp.net web-services asmx

我想调试我的webmethod,看看返回列表是否包含作为参数传递的对象。

我的网络方法如下:

[WebMethod]
       public List<Vehicle> GetCustomerList(Vehicle obj)
            {
                //List<Vehicle> newL = new List<Vehicle> { obj };

                return new List<Vehicle> { obj };

            }

它说“测试形式仅适用于具有基本类型作为参数的方法”。所以我想知道我需要做些什么改变才能检查方法传递的内容。

&GT;编辑后续问题的代码

public class Service1 : System.Web.Services.WebService
    {

   [WebMethod]
             public List<Vehicle> GetCustomerList(Vehicle vehi)
            {
                List<Vehicle> newL = new List<Vehicle> { vehi };
                return new List<Vehicle> { vehi };

            }

            [WebMethod]
            public void simpleCase()
            {
                Vehicle obj = new Vehicle();
                obj.VehicleID = "KL-9876";
                obj.VehicleType = "Nissan";
                obj.VehicleOwner = "Sanjiva";
                GetCustomerList(obj);
            }
    }



    public class Vehicle
    {
        public string VehicleID { get; set; }
        public string VehicleType { get; set; }
        public string VehicleOwner { get; set; }
    }


}

2 个答案:

答案 0 :(得分:2)

声明的方法需要一个Vehicle对象,这是您无法在表单中键入的内容,因此也就是消息。在表单中,您显然可以只输入基本类型(int等)

答案 1 :(得分:0)

要测试非原始参数类型,您需要创建一个使用Web服务的测试应用程序,因此请在与Web Service相同的解决方案中创建一个新应用程序(Windows / Web并不重要)。在同一解决方案中,将Web参考添加到该服务。然后照常使用服务(即创建服务的实例,然后在其上调用方法,并传入任何复杂的参数类型)。