asp.net – ASMX Web服务 – 返回具有属性的用户定义类
发布时间:2020-12-16 07:02:48 所属栏目:asp.Net 来源:网络整理
导读:嘿, 我试图从Web方法返回用户定义的类.该类具有属性和/或方法. 给定以下Web方法: [WebMethod] public ListMenuItem GetMenu() { ListMenuItem menuItemList = new ListMenuItem(); menuItemList.Add(new MenuItem()); menuItemList.Add(new MenuItem()); me
嘿,
我试图从Web方法返回用户定义的类.该类具有属性和/或方法. 给定以下Web方法: [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; } 现在,假设通过在新创建的控制台应用程序中添加Web引用来使用此Web服务.以下代码用于测试它: public void TestGetMenu() { MenuService service = new MenuService.MenuService(); service.MenuItem[] menuItemList = service.GetMenu(); for (int i = 0; i < menuItemList.Length; i++) { Console.WriteLine(menuItemList[i].name); } Console.ReadKey(); } 首先,如果MenuItem类包含属性,这不起作用…此外,如果MenuItem类包含一个方法,则对Web方法的调用不会失败,但该方法不在生成的代理类中.例如:menuItemList [i] .getName()不存在.为什么?我错过了什么? //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; } } 解决方法
它只有在类可序列化时才有效,这通常意味着公共字段和属性,这就是你的MenuItem失败的原因,因为你的客户端不知道如何正确构造MenuItem类.
试试这个: [Serializable] public class MenuItem { private string name; public MenuItem() { name = "pizza"; } public string Name { get { return name; } set { name = value; } } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc-3 – 向Entity Framework数据库添加属性,首先生
- asp.net – HttpCookieCollection.Add和HttpCookieCollecti
- asp.net-mvc – ASP.NET MVC控制器中的构造函数依赖注入
- asp.net-mvc – 如何全局化ASP.NET MVC视图(特别是小数分隔
- asp.net-mvc – 为什么InitializeSimpleMembershipAttribut
- 是否可以在IIS 7中将虚拟目录设置为根目录?
- asp.net-mvc – 在Razor视图中调用异步方法
- asp.net-mvc-4 – 如何在ASP.Net MVC 4中定义特定区域的布局
- asp.net – 避免Web应用程序的会话劫持
- asp.net – 如何在Page_Load上获取参数
推荐文章
站长推荐
热点阅读