【发布时间】:2014-01-17 12:17:15
【问题描述】:
我有一个带有 C# 的 ASMX Web 服务。在这个 WebService 中,我使用了一些具有属性的类。该类与 Service1.asmx 位于同一命名空间中。
我的网络服务代码:
namespace NewWebService
{
[WebService(Namespace = "http://www.MySite.net/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
// [System.Web.Script.Services.ScriptService]
public class Service1 : System.Web.Services.WebService
{
[WebMethod]
public string GetUsers(string authenticatedToken) //out string error
{
//Extract from database the users...
return Serialize(usersList);
}
...
}
}
我的班级代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace NewWebService
{
public class Users
{
public int ID { get; set; }
public string Name { get; set; }
...
}
}
问题是:我必须用我的班级做什么才能在我添加 web 服务的项目中查看它。
【问题讨论】:
-
您是否有理由不返回 User 类的集合而不是字符串?
-
ASMX 是一项遗留技术,不应用于新开发。 WCF 或 ASP.NET Web API 应该用于 Web 服务客户端和服务器的所有新开发。一个提示:Microsoft 已停用 MSDN 上的 ASMX Forum。
-
我将列表序列化为字符串,然后在用户列表中反序列化。
-
为什么要这样做?只需返回
List<User>? -
@wertyk:当您从另一个项目添加服务引用时,该服务引用生成的代码包括该服务公开的类型的类型定义。 (请注意,这些是 DTO 类型,它们不包含复杂的功能。)
标签: c# web-services asmx