它可能在Web Service C#中的单个asmx中暴露许多类,这用于生成 一个Proxy类,并从客户端使用代理,如:Proxy.UserService.User和Proxy.ImageService.GetImage 我试试这个但是不行。
namespace ServiciosWeb
{
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
public class Services : System.Web.Services.WebService
{
}
public class ImageService : Services.IService
{
[WebMethod]
public string GetImage()
{
return "Image";
}
}
public class UserService : Services.IService
{
[WebMethod]
public string User()
{
return "User";
}
}
}
答案 0 :(得分:4)
经典的ASMX Web服务是一个需要从System.Web.Services.WebService
派生并使用[WebService]
属性修饰的类。如果要公开多个服务,则可能需要具有多个ASMX文件。另一种可能性是简单地将两个Web方法放在现有服务类中,这样当您在客户端上生成代理类时,它们将是可见的。
答案 1 :(得分:3)
[WebService]
和[WebMethod]
无法做到这一点。
答案 2 :(得分:1)
你不能将多个类绑定到单个asmx,但是你可以做什么 - 如果你想提供大量的类文件 - 使用相同的类名,比如partial class。需要检查每个类是否需要从IService派生,但我已经在项目中完成了它并且它有效。
namespace ServiciosWeb
{
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
public partial class Services : System.Web.Services.WebService
{
}
public partial class Services : Services.IService
{
[WebMethod]
public string GetImage()
{
return "Image";
}
}
public partial class Services : Services.IService
{
[WebMethod]
public string User()
{
return "User";
}
}
}