Asp.net ASMX Web服务-返回具有属性的用户定义类
哎,, 我试图从web方法返回用户定义的类。该类具有属性和/或方法。 给定以下web方法:Asp.net ASMX Web服务-返回具有属性的用户定义类,asp.net,web-services,asmx,user-defined-types,Asp.net,Web Services,Asmx,User Defined Types,哎,, 我试图从web方法返回用户定义的类。该类具有属性和/或方法。 给定以下web方法: [WebMethod] public List<MenuItem> GetMenu() { List<MenuItem> menuItemList = new List<MenuItem>(); menuItemList.Add(new MenuItem()); menuItemList.Add(new MenuItem())
[WebMethod]
public List<MenuItem> GetMenu()
{
List<MenuItem> menuItemList = new List<MenuItem>();
menuItemList.Add(new MenuItem());
menuItemList.Add(new MenuItem());
menuItemList.Add(new MenuItem());
return menuItemList;
}
只有当类是可序列化的(通常意味着公共字段和属性)时,它才会起作用,这就是为什么MenuItem会失败的原因,因为
客户端不知道如何正确构造MenuItem类
试试这个:
[Serializable]
public class MenuItem
{
private string name;
public MenuItem()
{
name = "pizza";
}
public string Name
{
get {
return name;
}
set {
name = value;
}
}
}
如果我没记错的话,私有属性不会发送给客户端
无法在客户端上生成方法。在服务器上使用某些资源的方法是什么?
2a。为了解决这个问题,您可以使用分部类来重新实现一些方法
要在这里格式化代码,只需将其缩进4个空格,不要将其包装在块中。有一个小按钮,你可以用它来为你做。谢谢你,它真的开始烦扰我。谢谢,这工作。。。P.s.Stackoverflow社区太好了。对最后
//This works
public class MenuItem
{
public string name;
public MenuItem()
{
name = "pizza";
}
}
//This crashes / doesnt work
public class MenuItem
{
private string name;
public MenuItem()
{
name = "pizza";
}
public string Name
{
get { return name; }
set { name = value; }
}
}
//This successfully calls web method, but the method does not exist during test
public class MenuItem
{
private string name;
public MenuItem()
{
name = "pizza";
}
public string getName()
{
return name;
}
}
[Serializable]
public class MenuItem
{
private string name;
public MenuItem()
{
name = "pizza";
}
public string Name
{
get {
return name;
}
set {
name = value;
}
}
}