假设我有一个名为service.asmx / Test的Web服务/ Web方法。我在这个Web服务中有几种方法。
我希望将一些数据发送到任何给定的方法。数据由几个部分组成,每个方法可以有不同类型的变量发送给它。目前,我使用string [] []类型,所以我的Web服务看起来像这样:
[WebMethod]
public void Test(string[][] data)
{
//do whatever
}
我已经提到它不是最好的方法。很多人使用IDictionary并定义强类型......但似乎它会增加更多的复杂性。这样做的正确方法是什么?我应该使用什么类型的变量,List,string [] [],myCustomType?
如果我使用MyCustom类型,我想让它更通用,例如
public class MyCustom {
public string user { get; set; }
public string domain { get; set; }
public string client { get; set; }
public string server { get; set; }
Array<Object> params;
}
其中data是一个对象数组,每个对象的类型可能不同。
所以这个方法现在看起来像:
[WebMethod]
public void Test(MyCustom data)
{
//do whatever
}
谢谢
答案 0 :(得分:0)
决定传递几个参数,而不是传递MyCustom类型的一个参数。这解决了可维护性和灵活性问题。
答案 1 :(得分:0)
您可以做的是,您可以使用JSON将数据发布到您的Web服务。同样在您的Web服务中,您必须添加以下内容: [System.Web.Script.Services.ScriptService] 然后你可以做的是,你使用json对象作为你的ajax调用的数据,asp.net将负责其余的。